SealSelector (TSealOpeLogRegClass)
De Wiki1000
(Différences entre les versions)
(Une révision intermédiaire par un utilisateur est masquée) | |||
Ligne 1 : | Ligne 1 : | ||
<source lang='delphi'>class function SealSelector(Sel:TSelector; var aReason:string):Integer;</source> | <source lang='delphi'>class function SealSelector(Sel:TSelector; var aReason:string):Integer;</source> | ||
− | |||
− | |||
{|class="wikitable" | {|class="wikitable" | ||
Ligne 18 : | Ligne 16 : | ||
|} | |} | ||
+ | Cette méthode : | ||
+ | * Vérrouille la classe journal | ||
+ | * Crée un enregistrement de journal | ||
+ | * Gère une transaction longue si aucune transaction longue n'est ouverte. | ||
+ | |||
+ | Les objets du sélecteur doivent être numérotés suivant l'ordre de la séquence de scellement, le numéro de séquence du premier objet doit être le prochain numéro de séquence du dernier enregistrement du journal. | ||
+ | |||
+ | Exemple: | ||
+ | <source lang="Delphi"> | ||
+ | function SealInstancesUsingSelector(iFirstSequence:Integer; iCount:Integer; var aReason:string):Integer; | ||
+ | var sel:TSelector; aSequenceNumber:Integer; AStr:string; | ||
+ | begin | ||
+ | ClassManager.BeginLongTran(0,'ClassSealed'); | ||
+ | try | ||
+ | sel := ClassSealed.CreateSelector('(sequenceNumber>=%1)and(sequenceNumber<%2)','sequenceNumber',True,[iFirstSequence,iFirstSequence+iCount]); | ||
+ | |||
+ | Result := ClassSealOpeLog.SealSelector(sel,AStr); | ||
+ | aReason := AStr; | ||
+ | if Result=0 then | ||
+ | begin | ||
+ | ClassManager.RollBackLongTran; | ||
+ | Exit; | ||
+ | end; | ||
+ | ClassManager.CommitLongTran; | ||
+ | except | ||
+ | Result := 0; | ||
+ | ClassManager.RollBackLongTran; | ||
+ | end; | ||
+ | end; | ||
+ | </source> | ||
Voir aussi | Voir aussi |
Version actuelle en date du 13 avril 2017 à 09:03
class function SealSelector(Sel:TSelector; var aReason:string):Integer;
Paramètre | Usage |
---|---|
Result | Nombre d'objet scellé, 0 indique une erreur |
Sel | sélecteur sur la classe scellée. |
aReason | Information sur l'erreur |
Cette méthode :
- Vérrouille la classe journal
- Crée un enregistrement de journal
- Gère une transaction longue si aucune transaction longue n'est ouverte.
Les objets du sélecteur doivent être numérotés suivant l'ordre de la séquence de scellement, le numéro de séquence du premier objet doit être le prochain numéro de séquence du dernier enregistrement du journal.
Exemple:
function SealInstancesUsingSelector(iFirstSequence:Integer; iCount:Integer; var aReason:string):Integer; var sel:TSelector; aSequenceNumber:Integer; AStr:string; begin ClassManager.BeginLongTran(0,'ClassSealed'); try sel := ClassSealed.CreateSelector('(sequenceNumber>=%1)and(sequenceNumber<%2)','sequenceNumber',True,[iFirstSequence,iFirstSequence+iCount]); Result := ClassSealOpeLog.SealSelector(sel,AStr); aReason := AStr; if Result=0 then begin ClassManager.RollBackLongTran; Exit; end; ClassManager.CommitLongTran; except Result := 0; ClassManager.RollBackLongTran; end; end;
Voir aussi
— Classe_journal de scellement_(stereotype) — Développement DSM —