BeginLongTranWithClassLocks (CM)
De Wiki1000
procedure BeginTranLongTranWithClassLocks(iBatchSize:Integer; iParam:Variant; iLockOpe:Integer; const iClassToLock:Array of string);
Démarre une transaction longue en posant des verrous de classe.
iBatchSize | Taille de lot minimum.
Zéro pour utiliser la valeur par défaut. |
iParam | Paramètre indiquant une classe métier.
Ce paramètre peut être :
|
iLockOpe | Indique l'identifiant de verrou de classe qui sera posé |
iClassToLock | Indique un ensemble de classe sur lesquelles seront posés les verrous |
Les verrous de classe sont posés avant le démarrage de la transaction et sont maintenus jusqu'au commit ou rollback de la transaction.
Cette fonction peut échouer si les verrous ne peuvent pas être posés du fait de la concurrence d'accès.
Attention : Si vous posez des verrous sur un ensemble de classe, faite attention à toujours utiliser le même ordre pour éviter des situations de verrous mortels. |
Exemple
//Procedure _NeedTransaction(aClasse:String; aTranCount:Integer); begin if ClassManager.TranCount=0 then begin ClassManager.BeginLongTranWithClassLocks(0,aClasse,cSecureLogOpe,['JSPieceFacturationVente','JSFacturationDetail']); end; end;
Voir aussi :