« AllocTranContext (CM) » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 20 : | Ligne 20 : | ||
begin | begin | ||
new := ClassManager.AllocTranContext; | new := ClassManager.AllocTranContext; | ||
old := ClassManager. | old := ClassManager.ActivateContext(new); | ||
try | try | ||
ClassManager.BeginTran; | ClassManager.BeginTran; | ||
Ligne 40 : | Ligne 40 : | ||
var old:Integer; | var old:Integer; | ||
begin | begin | ||
old := ClassManager. | old := ClassManager.ActivateContext(ClassManager.AllocTranContext); | ||
try | try | ||
ClassManager.BeginTran; | ClassManager.BeginTran; |
Version du 4 janvier 2017 à 08:14
<source lang='delphi'>function AllocTranContext:Integer;</source>
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. <source lang='delphi'> var new,old:Integer; 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; </source>
Forme compacte <source lang='delphi'> var old:Integer; begin
old := ClassManager.ActivateContext(ClassManager.AllocTranContext); try ClassManager.BeginTran; try ... ClassManager.Commit; except ClassManager.RollBack; end; finally ClassManager.ActivateContext(old); end;
end; </source>
Voir aussi
{{#if:Gestion des transactions (CM)|
{{#if:Gestion des transactions (CM)|— Gestion des transactions (CM) |}} — Développement DSM —
|
{{#if:|— [[{{{1}}}]] |}} — Développement DSM —
}}