PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Recherche générique / Recherche à l'identique
  • Espaces en fin de rubrique
  • Recherche sur une clé composée
  • Recherche sur une rubrique tableau
  • Recherche et filtre
WinDevWebDev - Code ServeurWebDev - Code NavigateurWinDev MobileEtats et RequêtesWindowsLinuxWindows MobileWindows PhoneWindows Store appsAndroidWidget AndroidiPhone/iPadJavaPHPAjaxCode Utilisateur (MCU)Langage ExterneHFSQLHFSQL Client/ServeurProcédures stockéesHyper File 5.5OLE DBODBCAccès Natifs
HRecherche (Fonction)
En anglais : HSeek

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 (recherche générique par défaut). L'enregistrement n'est pas lu. Pour lire l'enregistrement, utilisez la fonction HLitRecherche.

Le numéro de l'enregistrement en cours est modifié uniquement lorsqu'il est renvoyé par la fonction HNumEnr. Pour les fonctions manipulant par défaut le numéro de l'enregistrement en cours (fonctions HSupprime, HLit, HModifie, ...), la valeur de ce numéro n'est pas mise à jour : il faut utiliser la fonction HNumEnr(). Par exemple : ne pas faire :

HSupprime(Client)

mais

HSupprime(Client, HNumEnr())

La lecture se fait de la plus petite à la plus grande valeur de la rubrique de parcours (consultez les notes pour plus de détails).

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 HRecherche permet de se positionner dans le fichier de données pour effectuer une boucle de parcours parmi les enregistrements correspondant à une condition. La fonction HSuivant permet de se positionner sur l'enregistrement suivant correspondant à la condition.

Après l'exécution de la fonction HRecherche, plusieurs cas peuvent se présenter :

  • un enregistrement correspondant à la condition a été trouvé : la fonction HTrouve renvoie Vrai
  • le fichier de données est vide ou il n'existe pas d'enregistrement correspondant à la condition : la fonction HEnDehors renvoie Vrai
Remarques :
  • Par défaut, les fonctions HRecherchePremier et HRechercheDernier permettent de réaliser une recherche à l'identique.
  • Par défaut, la fonction HRecherche effectue une recherche générique.
Versions 15 et supérieures
WinDev MobileAndroid Cette fonction est désormais disponible pour les applications Android.
Nouveauté 15
WinDev MobileAndroid Cette fonction est désormais disponible pour les applications Android.
WinDev MobileAndroid Cette fonction est désormais disponible pour les applications Android.
Versions 17 et supérieures
WinDev MobileiPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Nouveauté 17
WinDev MobileiPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
WinDev MobileiPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Versions 18 et supérieures
WinDev MobileWidget Android Cette fonction est désormais disponible en mode Widget Android.
WinDevWinDev MobileWindows Store apps Cette fonction est désormais disponible en mode Windows Store apps.
Nouveauté 18
WinDev MobileWidget Android Cette fonction est désormais disponible en mode Widget Android.
WinDevWinDev MobileWindows Store apps Cette fonction est désormais disponible en mode Windows Store apps.
WinDev MobileWidget Android Cette fonction est désormais disponible en mode Widget Android.
WinDevWinDev MobileWindows Store apps Cette fonction est désormais disponible en mode Windows Store apps.

Remarque : A partir de la version 19, HFSQL est le nouveau nom de HyperFileSQL.
Exemple
// Recherche générique du premier enregistrement pour lequel
// le code postal commence par "75"
HRecherche(CLIENT, CP, "75")

// Recherche du premier enregistrement à l'identique
// pour lequel le nom du CLIENT est DUPOND
// Mode 7 : Rubrique texte terminée par Caract(0)
HRecherche(CLIENT, NOM, "DUPOND" + Caract(0))

// Mode 5.5 : Rubrique texte complétée par des espaces
HRecherche(CLIENT, NOM, Complète("DUPOND", 30))

Syntaxe
<Résultat> = HRecherche(<Nom du fichier> , <Nom de la rubrique clé> , <Valeur recherchée> [, <Options>])
<Résultat> : Booléen
  • Vrai si le positionnement sur l'enregistrement a été effectué,
  • Faux en cas d'erreur (blocage, ...) : l'enregistrement n'est pas lu. Ce problème peut être dû :
    • soit à un problème de positionnement (fichier de données vide, ...) : la fonction HTrouve 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.
<Nom du fichier> : Chaîne de caractères (avec ou sans guillemets)
Nom du fichier de données HFSQL manipulé.
<Nom de la rubrique clé> : Chaîne de caractères (avec ou sans guillemets)
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é. Par défaut, le blocage effectué correspond au mode de blocage en cours, défini par la fonction HDébutVerrou.
  • le type de parcours
  • le type de recherche effectué.
hBlocageLectureEcritureBlocage en lecture/écriture : l'enregistrement en cours de lecture ne pourra ni être lu ni être modifié par une autre application.

OLE DB Blocage en écriture seulement. Fonctionnement équivalent à la constante hBlocageEcriture.
hBlocageEcritureBlocage 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.
hBlocageNonAucun blocage (même si la fonction HDébutVerrou a été appelée) : l'enregistrement pourra être lu ou modifié par une autre application pendant la lecture.
hIdentiqueRecherche à l'identique (voir Notes).
Par défaut (paramètre non spécifié), la recherche effectuée est une recherche générique.
hLimiteParcoursLe parcours s'arrêtera dès que la dernière valeur recherchée sera trouvée. L'enregistrement en cours correspondra à l'enregistrement trouvé. Dans ce cas, la fonction HTrouve renverra Faux et la fonction HEnDehors renverra Vrai.
Cette constante permet d'optimiser la vitesse en mode Client/Serveur.
hRespecteFiltreLe parcours prendra en compte le filtre mis en place avec la fonction HFiltre, même si la clé de parcours utilisée n'est pas optimisée pour le filtre. Rappel : la fonction HFiltre renvoie la clé de parcours optimisée pour le filtre.
Attention : dans ce cas, sur des fichiers de données de taille importante, des problèmes de performances peuvent survenir.

Hyper File 5.5 Cette variable ne peut pas être utilisée.

Windows Mobile La gestion des blocages est réalisée uniquement sur les fichiers de données HFSQL Client/Serveur ou manipulés par un accès natif. Il n'est pas possible de bloquer un enregistrement HFSQL Mobile. En effet, le système d'exploitation du Pocket PC ne permet pas de bloquer des enregistrements.

Java Accès par JDBC : Ce paramètre est ignoré.

OLE DBAccès Natifs Si le provider OLE DB ou l'Accès Natif utilisé ne gère pas les blocages, les options de blocage seront sans effet.

Hyper File 5.5 Les options de blocage ne sont pas prises en compte. Utilisez des fonctions de lecture bloquantes (fonction HLitPremierBloque) conservées par compatibilité.

Remarques

Recherche générique / Recherche à l'identique

Selon <Valeur Recherchée>, la recherche peut être générique ou à l'identique.
  • Cas d'une recherche générique : effectue une recherche de tous les enregistrements commençant par la valeur indiquée
    Pour effectuer une recherche générique, il suffit de préciser la valeur voulue dans le paramètre <Valeur recherchée>.
  • Cas d'une recherche à l'identique : effectue une recherche de tous les enregistrements correspondant exactement à la valeur indiquée.
    Pour effectuer une recherche à l'identique, il faut que la taille de l'argument de recherche soit exactement égale à la taille de la clé. Il faut alors compléter l'argument de recherche par des caractères "espace" pour les clés de type texte. Utilisez pour cela la fonction Complète.

Espaces en fin de rubrique

Par défaut, lors de la lecture d'un enregistrement, les espaces en fin des rubriques de type texte ne sont pas supprimés dans les variables de fichier.

Pour que les espaces soient supprimés, utilisez la fonction EspaceSignificatif.

Recherche sur une clé composée

Plusieurs méthodes permettent de faire une recherche sur une clé composée :Utilisation d'une liste de valeurs
Pour faire une recherche sur une clé composée, il est possible d'utiliser la syntaxe suivante :

HRecherche(<Nom du fichier>, <Nom de la clé composée>, ...
[<Valeur de recherche du premier élément de la clé composée>,
<Valeur de recherche du deuxième élément de la clé>, ...])

Exemple :

// Recherche de l'enregistrement
HRecherche(CLIENT, NOM_PRENOM, ["MOULIN","Françoise"])

Hyper File 5.5 Les recherches génériques sur les clés composées fonctionnent uniquement si toutes les composantes de la clé composée sont de type Texte. Dans le cas contraire, une recherche à l'identique est effectuée.

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 HFiltre), la recherche tient compte du filtre.

Composantes
WinDevWebDev - Code ServeurEtats et Requêtes wd200hf.dll
Windows Mobile wp200hf.dll
Java wd200java.jar
Linux wd200hf.so
Android wd200android.jar
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire