Salut,
Je veux comptabiliser le nombre d'enregistrements provenant d'un DBExtract, afin d'économiser un Select Count(?) qui donnerait le même résultat.
Je n'ai pas trouvé dans les sources quelque élément qui indique cette information.
Je me suis bricolé une solution, j'aimerais avoir votre avis dessus, et si il y a plus simple ?
Ma soluce :
Je pose un composant Business Service dans le module concerné.
Je code le gestionnaire d'évènement AfterInstruction (sensé prendre la fin à la fin du DBExtract en question) :
Je suis obligé de transtyper XMLInstruction en TXMLInstruction car InstructionStats ne fait pas partie du contrat IXMLInstruction. D'autre part j'ai dû rajouter l'unité XMLGram dans les uses afin d'obtenir une visibilité sur TXMLInstruction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Procedure TStatistique.TirUMIPAfterInstruction( XMLInstruction: IXMLInstruction; e: TAfterInstructionEventArgs); begin if XMLInstruction.Name = 'TIREUR' then e.Output.SetValue('NBTIREUR', IntToStr(TXMLInstruction(XMLInstruction).InstructionStats.Fetches)); end;
* Request for eDelos Team : Si il n'y a pas plus simple, ce serait bien que le context soit alimenté à la fin de chaque DBExtract par une information indiquant le nb d'enreg récupérés (un peu comme font les SGBD qui indiquent le nombre d'enregs affectés lors de select, update, delete etc.)
Sylvain
Partager