Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
J'ai une question concernant les transactions :
J'ai un programme dont je ne dois effectuer un commit qu'à la fin et dans ce programme j'effectue des entrées en base pour loguer les actions que je voudrais par contre commiter sans commiter les opérations effectuées par le reste du programme..
Il faut que je déclare une autre transaction?
merci
Hors ligne
bonjour,
Oui, si tu déclare 2 transactions, tu pourras faire des updates intermédiaires sans commiter le restant du programme .
Hors ligne
thezerg a écrit:
Bonjour,
J'ai une question concernant les transactions :
J'ai un programme dont je ne dois effectuer un commit qu'à la fin et dans ce programme j'effectue des entrées en base pour loguer les actions que je voudrais par contre commiter sans commiter les opérations effectuées par le reste du programme..
Il faut que je déclare une autre transaction?
merci
Pour moi, il faut que tu déclares des transactions au niveau de chaque action que tu dois commiter.
En Oracle çà donne un truc genre:
PROCEDURE Machin IS BEGIN BEGIN Action 1 COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK; END; BEGIN Action 2 COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK; END; END Machin;
Mais bon, je ne sais pas en quel SGBD tu es...
Hors ligne
ca va aussi commit les infos que j'ai ajouté depuis pb non?
MErci
Hors ligne
thezerg a écrit:
ca va aussi commit les infos que j'ai ajouté depuis pb non?
Oui, je l'ai déjà fait
Hors ligne
non mais je ne veux pas commit justement toute la transaction juste ce qui concerne mes logs.. as tu utiliser autonomous_transaction?
Hors ligne
Dans mes packages ORACLE oui.(Tu parles bien de la PRAGMA?)
Hors ligne
oui et tu le déclares comment au niveau du package?
Hors ligne
Au niveau du package body, tu mets le code suivant
PROCEDURE machin IS PRAGMA AUTONOMOUS_TRANSACTION BEGIN mon_code COMMIT; END machin;
Et voilà
Hors ligne
avec un ";" avec le autonomous_transaction ca marche mieux non ?
merci en tout cas
Hors ligne
thezerg a écrit:
avec un ";" avec le autonomous_transaction ca marche mieux non ?
Sûr!
Hors ligne