AllocTranContext (CM)
De Wiki1000
(Différences entre les versions)
Ligne 17 : | Ligne 17 : | ||
'''Exécution d'une transaction séparée.''' | '''Exécution d'une transaction séparée.''' | ||
<source lang='delphi'> | <source lang='delphi'> | ||
− | var new,old: | + | var new,old:Int64; |
begin | begin | ||
new := ClassManager.AllocTranContext; | new := ClassManager.AllocTranContext; | ||
Ligne 38 : | Ligne 38 : | ||
'''Forme compacte''' | '''Forme compacte''' | ||
<source lang='delphi'> | <source lang='delphi'> | ||
− | var old: | + | var old:Int64; |
begin | begin | ||
old := ClassManager.ActivateContext(ClassManager.AllocTranContext); | old := ClassManager.ActivateContext(ClassManager.AllocTranContext); |
Version du 6 février 2019 à 14:13
function AllocTranContext:Integer;
Cette fonction alloue un contexte de transaction.
Result | Un entier représentant un nouveau contexte de transaction |
Cette fonction et ses compagnions permettent d'exécuter une transaction dans un contexte séparé du contexte courant. Elles permettent, par exemple, de s'assurer d'une mise d'un objet même si une transaction est en cours et peut éventuellement échouer.
Exemple
Exécution d'une transaction séparée.
var new,old:Int64; begin new := ClassManager.AllocTranContext; old := ClassManager.ActivateContext(new); try ClassManager.BeginTran; try ... ClassManager.Commit; except ClassManager.RollBack; end; finally ClassManager.DeActivateContext(new); ClassManager.ActivateContext(old); end; end;
Forme compacte
var old:Int64; begin old := ClassManager.ActivateContext(ClassManager.AllocTranContext); try ClassManager.BeginTran; try ... ClassManager.Commit; except ClassManager.RollBack; end; finally ClassManager.ActivateContext(old); end; end;
Voir aussi