« AllocTranContext (CM) » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| Ligne 1 : | Ligne 1 : | ||
<source lang='delphi'>function AllocTranContext: | <source lang='delphi'>function AllocTranContext:Int64;</source> | ||
Cette fonction alloue un contexte de transaction. | Cette fonction alloue un contexte de transaction. | ||
{{info|Cette fonction ne change pas le contexte en cours.}} | {{info|Cette fonction ne change pas le contexte en cours.}} | ||
{{Warning|Attention vous le type de donnée pour stocker le context doit être un entier 64 bits}} | |||
{|class="wikitable" | {|class="wikitable" | ||
Version du 6 février 2019 à 13:14
function AllocTranContext:Int64;
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