AllocTranContext (CM)

De Wiki1000
(Différences entre les versions)
(Nouvelle page : <source lang='delphi'>function AllocTranContext:Integer;</source> Cette fonction alloue un contexte de transaction. {{info|Cette fonction ne change pas le contexte en cours.}} {|c...)
 
 
(4 révisions intermédiaires par 2 utilisateurs sont masquées)
Ligne 1 : Ligne 1 :
<source lang='delphi'>function AllocTranContext:Integer;</source>
+
<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|Le type de donnée pour stocker le context doit être un entier 64 bits}}
  
 
{|class="wikitable"
 
{|class="wikitable"
Ligne 10 : Ligne 11 :
 
|Un entier représentant un nouveau contexte de transaction
 
|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
 
Exemple
 +
 +
'''Exécution d'une transaction séparée.'''
 
<source lang='delphi'>
 
<source lang='delphi'>
var new,old:Integer;
+
var new,old:Int64;
 
begin
 
begin
 
   new := ClassManager.AllocTranContext;
 
   new := ClassManager.AllocTranContext;
   old := ClassManager.ActivateTranContext(new);
+
   old := ClassManager.ActivateContext(new);
 
   try
 
   try
 
   ClassManager.BeginTran;
 
   ClassManager.BeginTran;
Ligne 32 : Ligne 37 :
 
</source>
 
</source>
  
 +
'''Forme compacte'''
 
<source lang='delphi'>
 
<source lang='delphi'>
var old:Integer;
+
var old:Int64;
 
begin
 
begin
   old := ClassManager.ActivateTranContext(ClassManager.AllocTranContext);
+
   old := ClassManager.ActivateContext(ClassManager.AllocTranContext);
 
   try
 
   try
 
   ClassManager.BeginTran;
 
   ClassManager.BeginTran;
Ligne 51 : Ligne 57 :
  
 
Voir aussi
 
Voir aussi
 +
* [[CurrentTranContext (CM)|CurrentTranContext]]
 +
* [[ActivateContext (CM)|ActivateContext]]
 +
* [[DeActivateContext (CM)|DeActivateContext]]
 +
  
 
{{Footer|Gestion des transactions (CM)}}
 
{{Footer|Gestion des transactions (CM)}}
 
[[category:ClassManager]]
 
[[category:ClassManager]]
 
[[category:CMT]]
 
[[category:CMT]]

Version actuelle en date du 6 février 2019 à 14:15

function AllocTranContext:Int64;

Cette fonction alloue un contexte de transaction.

Info-20px.png Note : Cette fonction ne change pas le contexte en cours.
Exclam-20px.png Attention : Le type de donnée pour stocker le context doit être un entier 64 bits
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


Gestion des transactions (CM)Développement DSM

Outils personnels