|
|
|
|
|
- Recherche générique/Recherche à l'identique
- Recherche sur une clé composée
- Recherche sur une rubrique tableau
- Recherche et filtre
- Blocages
<Source>.RecherchePremier (Fonction) En anglais : <Source>.SeekFirst
Non disponible avec ce type de connexion
Positionne sur le premier enregistrement du fichier de données dont la valeur d'une rubrique spécifique est supérieure ou égale à une valeur recherchée. L'enregistrement n'est pas lu. Le numéro de l'enregistrement en cours est modifié uniquement lorsqu'il est renvoyé par la fonction <Source>.NumEnr. Pour les fonctions manipulant par défaut le numéro de l'enregistrement en cours (fonctions <Source>.Supprime, <Source>.Lit, <Source>.Modifie, ...), la valeur de ce numéro n'est pas mise à jour : il faut utiliser la fonction <Source>.NumEnr. Par exemple, ne pas faire :
Client.RecherchePremier(IDClient, 25)
Client.Supprime()
mais faire :
Client.RecherchePremier(IDClient, 25)
Client.Supprime(Client.NumEnr())
Attention : L'enregistrement chargé en mémoire n'est pas modifié. Les variables HFSQL (par exemple Client.Nom, c'est-à -dire la rubrique Nom du fichier Client) ne sont pas mises à jour. En général, la fonction <Source>.RecherchePremier permet de se positionner dans le fichier de données pour effectuer une boucle de parcours parmi les enregistrements correspondant à une condition. Après l'exécution de la fonction <Source>.RecherchePremier, plusieurs cas peuvent se présenter : - un enregistrement correspondant à la condition a été trouvé, bloqué (si nécessaire) et chargé en mémoire : la fonction <Source>.Trouve renvoie Vrai.
- le fichier de données est vide ou il n'existe pas d'enregistrement correspondant à la condition : la fonction <Source>.EnDehors renvoie Vrai.
- la fonction tente de bloquer un enregistrement déjà bloqué en lecture : la fonction HErreurBlocage renvoie Vrai et la fonction <Source>.EnDehors renvoie Vrai.
Client.RecherchePremier(Nom, "Dupond")
bufValRech est un Buffer = Client.ConstruitValClé(Nom_Prénom, sNom, sPrénom)
Client.RecherchePremier(Nom_Prénom, bufValRech, hBlocageEcriture)
TANTQUE Client.Trouve() = Vrai
Client.Supprime(Client.NumEnr())
Client.Suivant(Nom_Prénom, hBlocageEcriture)
FIN
Syntaxe
<Résultat> = <Source>.RecherchePremier(<Rubrique clé> , <Valeur recherchée> [, <Options>])
<Résultat> : Booléen - Vrai si le positionnement sur l'enregistrement a été effectué (correspond à la valeur de <Source>.Trouve).
- Faux en cas de problème. Ce problème peut être dû :
- soit à un problème de positionnement (fichier de données vide, etc.) : la fonction <Source>.Trouve renvoie Faux et la fonction HErreur renvoie 0.
- soit à une erreur : la fonction HErreur renvoie un entier différent de 0. La fonction HErreurInfo permet d'obtenir plus de détails.
<Source> : Type correspondant à la source spécifiée Nom du fichier de données HFSQL manipulé. <Rubrique clé> : Chaîne de caractères Nom de la rubrique clé sur laquelle la recherche doit être effectuée. <Valeur recherchée> : Type correspondant à la valeur Valeur de la rubrique recherchée. <Options> : Constante ou combinaison de constantes optionnelle Paramètre :- le mode de blocage de l'enregistrement recherché
- le type de recherche effectué.
| | hBlocageEcriture | Blocage en écriture : l'enregistrement en cours de lecture pourra être lu par une autre application mais ne pourra pas être modifié par une autre application. | hBlocageLectureEcriture | Blocage en lecture/écriture : l'enregistrement en cours de lecture ne pourra ni être lu ni être modifié par une autre application.
| hBlocageNon | Aucun blocage : l'enregistrement pourra être lu ou modifié par une autre application pendant la lecture. | hGénérique | Recherche générique (voir Notes) Par défaut (constante non spécifiée), la recherche effectuée est une recherche à l'identique. | hLimiteParcours | Le parcours s'arrêtera dès que la dernière valeur recherchée sera trouvée. L'enregistrement en cours correspondra à ce dernier enregistrement trouvé. La fonction <Source>.Trouve renverra Faux et la fonction <Source>.EnDehors renverra Vrai. Cette constante permet d'optimiser la vitesse de recherche en mode Client/Serveur. | hRespecteFiltre | Le parcours prendra en compte le filtre mis en place avec la fonction <Source>.Filtre, même si la clé de parcours utilisée n'est pas optimisée pour le filtre. Rappel : la fonction <Source>.Filtre renvoie la clé de parcours optimisée pour le filtre. Attention : dans ce cas, sur des fichiers de taille importante, des problèmes de performances peuvent survenir. Par défaut, le parcours suivant la fonction <Source>.RecherchePremier ne prend pas en compte le filtre. |
Remarques Recherche générique/Recherche à l'identique - Recherche générique (essentiellement sur les rubriques de type Chaîne de caractères) : Recherche tous les enregistrement commençant par la valeur indiquée.
Par exemple : Lors d'une recherche générique de la chaîne "Martin" pour la rubrique NOM, tous les enregistrements dont la rubrique Nom commence par "Martin" correspondront à la recherche. Ainsi, l'enregistrement contenant "Martinez" correspondra à la recherche (HTrouve renvoie Vrai). - Recherche à l'identique : Recherche tous les enregistrement correspondant exactement à la valeur indiquée.
Par exemple : Lors d'une recherche à l'identique sur la chaîne "Martin" pour la rubrique NOM, la fonction HTrouve renvoie Vrai uniquement pour les enregistrements dont la rubrique vaut exactement "Martin". - Exemples de recherches effectuées sur le fichier CLIENT trié par nom :
| | | | | | Valeur cherchée | Options | <Source>.RecherchePremier positionne sur l'enregistrement | <Source>.Trouve renvoie | <Source>.EnDehors renvoie | Explications | Durand | | 1 | Vrai | Faux | Durand existe. La fin du fichier de données n'a pas encore été atteinte. | Dupuis | | 1 | Faux | Faux | Dupuis n'existe pas. Positionnement sur la première valeur supérieure (Durand). La fin du fichier de données n'a pas encore été atteinte. | Dupon | HGénérique | 8 | Vrai | Faux | Dupon n'existe pas mais la recherche est générique et il existe un Dupond (entre autres). La fin du fichier de données n'a pas encore été atteinte. | Dupon | | L'enregistrement n'a pas été trouvé (pas de déplacement) | Faux | Faux | Dupon n'existe pas. La fin du fichier de données n'a pas encore été atteinte. | Norbert | | L'enregistrement n'a pas été trouvé (pas de déplacement) | Faux | Vrai | Norbert n'existe pas. Positionnement sur la première valeur supérieure (cette valeur n'existe pas) : La fin du fichier de données est donc atteinte. |
Recherche sur une rubrique tableau La recherche se fait uniquement sur le premier élément du tableau (élément d'indice 1). Pour effectuer une recherche sur les autres éléments du tableau, utilisez des filtres ou des requêtes. Recherche et filtre Si un filtre est actif (fonction <Source>.Filtre), la recherche tient compte du filtre.
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|