/****************************************************************/
Type ResultatRequeteListe(TypeEnregistrement : Type) Implemente Public : IResultatRequete(Nul Ou TypeEnregistrement) Defaut Final TailleSegment 8 ConserverObjets
/* Objet : Definition du type ResultatRequeteListe. */
/****************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet. */
/*-------------------------------------------------------------*/
Prive :
EstInstanceDe : Type Lecture Public;
/*-------------------------------------------------------------*/
/* Heritage des proprietes de IResultatRequete. */
/*-------------------------------------------------------------*/
Prive :
NbEnregistrements : Entier Lecture Public;
/*-------------------------------------------------------------*/
/* Heritage des methodes d'Objet. */
/*-------------------------------------------------------------*/
Public :
Fonction Optimiser(Invariant) Identique(O : Nul Ou Objet) Retourner Nul Ou Booleen;
Procedure Convertir(O : Nul Ou Objet);
Fonction Optimiser(Invariant) CreeParLeServeur() Retourner Entier;
Fonction Optimiser(Invariant) CreeParLeProcessus() Retourner Entier;
Fonction Optimiser(Invariant) CreeDansLEntrepot() Retourner Entrepot;
Fonction Cloner(EntrepotCible : Nul Ou Entrepot=Nul, Profondeur : ModeClonage = ClonageObjetSeul) Retourner Nul Ou Objet;
Fonction LirePropriete(NomPropriete : Caractere) Retourner Nul Ou Objet;
Procedure EcrirePropriete(NomPropriete : Caractere, Valeur : Nul Ou Objet);
Fonction IncrementerDecrementerPropriete(NomPropriete : Nul Ou Caractere, Incrementer : Booleen, Prefixe : Booleen) Retourner Nul Ou Objet;
Procedure SupprimerPropriete(NomPropriete : Caractere);
Fonction Optimiser(Invariant) EnumererProprietes(NumeroPropriete : Entier, TypePropriete : Nul Ou Type=? Sortie, PeutEtreNul : Booleen=? Sortie, Aide : Nul Ou Caractere=? Sortie, NomEnumere : Nul Ou Caractere=? Sortie) Retourner Nul Ou Caractere;
Fonction Optimiser(Invariant) Adresse() Retourner Nul Ou Caractere;
Prive :
Fonction Exporter(E : Nul Ou IEchangeElementaire) Retourner Boolean;
Fonction Importer(E : Nul Ou IEchangeElementaire, EntrepotCible : Nul Ou Entrepot=Nul, EstFiltre : Booleen=Faux, V : Entier=0, R : Entier=0, C : Entier=0) Retourner Nul Ou Objet;
/*-------------------------------------------------------------*/
/* Heritage des methodes d'IIterateur. */
/*-------------------------------------------------------------*/
Public :
Fonction Optimiser(Invariant) ParcoursAuDebut(NumeroIterateur : Entier=0) Retourner Nul Ou TypeEnregistrement;
Fonction Optimiser(Invariant) ParcoursALaFin(NumeroIterateur : Entier=0) Retourner Nul Ou TypeEnregistrement;
Fonction Optimiser(Invariant) ParcoursAuMilieu(Position : Nul Ou Entier, NumeroIterateur : Entier=0) Retourner Nul Ou TypeEnregistrement;
Fonction Suivant(NumeroIterateur : Entier=0) Retourner Nul Ou TypeEnregistrement;
Fonction Precedent(NumeroIterateur : Entier=0) Retourner Nul Ou TypeEnregistrement;
Fonction Optimiser(Invariant) PremierElement() Retourner Nul Ou TypeEnregistrement;
Fonction Optimiser(Invariant) DernierElement() Retourner Nul Ou TypeEnregistrement;
Fonction Optimiser NumeroElement(NumeroIterateur : Entier=0) Retourner Nul Ou Entier;
Fonction Optimiser Element(NumeroIterateur : Entier=0) Retourner Nul Ou TypeEnregistrement;
Fonction AllouerIterateur() Retourner Entier;
Procedure LibererIterateur(NumeroIterateur : Entier);
/*-------------------------------------------------------------*/
/* Heritage des methodes de IResultatRequete. */
/*-------------------------------------------------------------*/
/* Methodes propres. */
/*-------------------------------------------------------------*/
Public :
Constructeur(T : Nul Ou Type, L : Nul Ou Liste(Nul Ou TypeEnregistrement));
Prive :
Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type ResultatRequeteListe modélise le résultat d'une requête en s'appuyant sur une liste d'objets. Cela permet de simuler une requête quand celle-ci est trop complexe ou nécessite des opérations non supportées par la technologie tierce ou le progiciel.
Chaque objet du type ResultatRequeteListe possède des moteurs d'itérations permettant de parcourir ses enregistrements. Les itérateurs sont numérotés de 0 à n, 0 étant l'itérateur implicite qui n'a pas besoin d'être alloué par l'appel à AllouerIterateur. Chaque itérateur alloué, une fois utilisé, doit être libéré par l'appel LibererIterateur.
Le type ResultatRequeteListe possède un constructeur explicite permettant de construire un résultat de requête à partir d'une liste d'objets. Le type de l'objet doit être en accord avec le type de l'enregistrement.
Le type ResultatRequeteListe est paramétré par le type TypeEnregistrement correspondant au type d'un enregistrement retourné par la requête.
Principal
/*******/
Variable
/******/
R : ResultatRequeteListeDe Caractere;
C : Caractere;
Debut
...
/* Parcours de ce resultat. */
Pour C=L.ParcoursAuDebut() JusquA L.DernierElement() Faire
Ecran.Ecrire(C);
Fin Pour
Fin Principal
- | - | - | - | - | - | - | - | - |