|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() Inscription : mai 2007 Messages : 732 ![]() |
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 |
|
|
00
|
|
|
#2 | |
![]() ![]() Serge GirardDéveloppeur informatique Inscription : janvier 2007 Messages : 4 217 ![]() |
Citation:
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 |
|
|
|
00
|
|
|
#3 | |
|
Membre régulier
![]() André Langlet Inscription : avril 2010 Messages : 50 ![]() |
Bonsoir,
Citation:
![]() 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é |
|
|
|
00
|
|
|
#4 | |
![]() ![]() Serge GirardDéveloppeur informatique Inscription : janvier 2007 Messages : 4 217 ![]() |
Citation:
__________________
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 |
|
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() André Langlet Inscription : avril 2010 Messages : 50 ![]() |
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é |
|
|
00
|
|
|
#6 |
|
Membre actif
![]() Inscription : mai 2007 Messages : 732 ![]() |
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 |
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() André Langlet Inscription : avril 2010 Messages : 50 ![]() |
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com