Précédent   Forum du club des développeurs et IT Pro > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 07/12/2012, 09h51   #1
looping
Membre actif
 
Inscription : mai 2007
Messages : 732
Détails du profil
Informations personnelles :
Âge : 48

Informations forums :
Inscription : mai 2007
Messages : 732
Points : 175
Points : 175
Par défaut question sur table temporaire

bonjour,

Petite question sur les GTT.

j'utilise les GTT pour la première fois, et il y a un truc qui m'echappe :

A quoi sert le mode 'ON DELETE ROW' ? A quelle utilisation typique ?

je travaille avec des champs persistant, et lorsque l'on fait un 'post' suite à une insertion (avec un dbnavigator par exemple) , il faut bien fait un commit pour que les données soient enregistrée et si on 'commit' alors on perd les données ?

merci
looping est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2012, 09h16   #2
SergioMaster
Modérateur
 
Avatar de SergioMaster
 
Homme Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 4 217
Détails du profil
Informations personnelles :
Nom : Homme Serge Girard
Âge : 56
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 4 217
Points : 7 284
Points : 7 284
Citation:
A quoi sert le mode 'ON DELETE ROW' ? A quelle utilisation typique ?
il se trouve que je me trouve devant ce genre d'utilisation .
L'intérieur d'une procédure est une transaction (fermée a la fin sauf demande explicite), c'est dans ce cas de figure que j'ai utilisé une GTT , certes , j'aurais pu m'en passer mais cela au prix d'une codification beaucoup plus complexe

en gros , voici le shéma :
2 procedures
PROCEDURE FILLGTT;
PROCEDURE PRINCIPALE;
la procédure principale appelle FILLGTT puis fait des SELECT dessus pour envoyer des résultats .

Je ne pense pas qu'une GTT soit utilisable via un programme Delphi (selon ce que j'ai compris) . même en ON COMMIT PRESERVE ROWS . En effet que se passera t'il si 2 sessions sont ouvertes :
- avec le même USER
- avec 2 Users différents
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2012, 23h14   #3
alanglet
Membre régulier
 
André Langlet
Inscription : avril 2010
Messages : 50
Détails du profil
Informations personnelles :
Nom : André Langlet

Informations forums :
Inscription : avril 2010
Messages : 50
Points : 84
Points : 84
Bonsoir,

Citation:
Envoyé par SergioMaster Voir le message
Je ne pense pas qu'une GTT soit utilisable via un programme Delphi (selon ce que j'ai compris) . même en ON COMMIT PRESERVE ROWS . En effet que se passera t'il si 2 sessions sont ouvertes :
- avec le même USER
- avec 2 Users différents
Oh que si, c'est utilisable

Description: Global temporary tables have persistent metadata, but their contents are transaction-bound (the
default) or connection-bound. Every transaction or connection has its own private instance of a GTT, isolated
from all the others. Instances are only created if and when the GTT is referenced, and destroyed upon transaction
end or disconnection.

L'instance de la GTT est bien particulière à chaque connexion, donc à l'utilisateur et est détruite à la fermeture de la connexion dans le cas de ON COMMIT PRESERVE ROWS.
Avec ON COMMIT DELETE ROWS (défaut), elle est détruite à chaque commit de la transaction.

André
alanglet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2012, 09h37   #4
SergioMaster
Modérateur
 
Avatar de SergioMaster
 
Homme Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 4 217
Détails du profil
Informations personnelles :
Nom : Homme Serge Girard
Âge : 56
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 4 217
Points : 7 284
Points : 7 284
Citation:
L'instance de la GTT est bien particulière à chaque connexion, donc à l'utilisateur et est détruite à la fermeture de la connexion dans le cas de ON COMMIT PRESERVE ROWS.
Bon , autant pour moi et je prend acte et je vais même (peut être) m'en servir
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2012, 09h55   #5
alanglet
Membre régulier
 
André Langlet
Inscription : avril 2010
Messages : 50
Détails du profil
Informations personnelles :
Nom : André Langlet

Informations forums :
Inscription : avril 2010
Messages : 50
Points : 84
Points : 84
Bonjour,

Que l'on n'ait pas besoin de s'occuper de vider ces GTT est peut-être intéressant, mais le meilleur, c'est que les données de ces tables étant stockées dans des fichiers temporaires séparés, le fichier de la base est moins désorganisé et fractionné.

André
alanglet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2012, 18h27   #6
looping
Membre actif
 
Inscription : mai 2007
Messages : 732
Détails du profil
Informations personnelles :
Âge : 48

Informations forums :
Inscription : mai 2007
Messages : 732
Points : 175
Points : 175
Par défaut infos complémentaire

Bonjour,

Alors si j'ai bien compris:
"Si il y a plusieurs utilisateurs qui utilisent la table, chacun ne voit que les données le concernant, qui seront de toute facon effacées à la fin de la transaction ou connection"

Cordialement
looping est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2012, 18h37   #7
alanglet
Membre régulier
 
André Langlet
Inscription : avril 2010
Messages : 50
Détails du profil
Informations personnelles :
Nom : André Langlet

Informations forums :
Inscription : avril 2010
Messages : 50
Points : 84
Points : 84
Citation:
Envoyé par looping Voir le message
chacun ne voit que les données le concernant
C'est çà et plus exactement, les données qu'il y aura insérées dans la même transaction ou la même connexion selon la définition de la table temporaire.

André
alanglet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 13h00.


 
 
 
 
Partenaires

Hébergement Web