PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE


Nouveauté WINDEV, WEBDEV, WINDEV Mobile 25 !
  • Recherche générique/Recherche à l'identique
  • Recherche sur une clé composée
  • Recherche sur une rubrique tableau
  • Recherche et filtre
  • Blocages
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget iOSApple WatchCatalystUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Positionne sur le dernier enregistrement du fichier de données dont la valeur d'une rubrique spécifique est infé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.Supprime()
mais
Client.Supprime(Client.NumEnr())
La lecture se fait de la plus petite à la plus grande valeur de la rubrique de parcours (consultez les remarques 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 <Source>.RechercheDernier permet de se positionner dans le fichier de données pour effectuer une boucle de parcours parmi les enregistrements correspondant à une condition. La fonction <Source>.Suivant permet de se positionner sur l'enregistrement suivant correspondant à la condition.
Après l'exécution de la fonction <Source>.RechercheDernier, plusieurs cas peuvent se présenter :
  • un enregistrement correspondant à la condition a été trouvé : 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
Remarques :
Versions 15 et supérieures
Android Cette fonction est désormais disponible pour les applications Android.
Nouveauté 15
Android Cette fonction est désormais disponible pour les applications Android.
Android Cette fonction est désormais disponible pour les applications Android.
Versions 17 et supérieures
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Nouveauté 17
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Versions 18 et supérieures
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Nouveauté 18
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Universal Windows 10 App 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.
Versions 21 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Nouveauté 21
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.

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 <Source>.RechercheDernier 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>.RechercheDernier, 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.
    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 Connecteur 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.
Remarque : la recherche peut être annulée grâce à la fonction <Source>.AnnuleRecherche.
Versions 15 et supérieures
Android Cette fonction est désormais disponible pour les applications Android.
Nouveauté 15
Android Cette fonction est désormais disponible pour les applications Android.
Android Cette fonction est désormais disponible pour les applications Android.
Versions 17 et supérieures
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Nouveauté 17
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Versions 18 et supérieures
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Nouveauté 18
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Universal Windows 10 App 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.
Versions 21 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Nouveauté 21
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Exemple
// Recherche du dernier enregistrement pour lequel le nom du Client est Dupond
Client.RechercheDernier(Nom, "Dupond")
// Cet exemple permet de rechercher tous les clients
// ayant un chiffre d'affaires inférieur à une valeur donnée.
Client.RechercheDernier(ChiffreAffaires, X)
TANTQUE PAS Client.EnDehors()
AjouterClientListe()
Client.Précédent(ChiffreAffaires)
FIN
Syntaxe
<Résultat> = <Source>.RechercheDernier(<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, ...) : 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 (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é
  • le type de recherche effectué.
hBlocageLectureEcritureBlocage en lecture/écriture : l'enregistrement 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 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.
hGénériqueRecherche générique (voir Notes)
Par défaut (constante non spécifiée), la recherche effectuée est une recherche à l'identique.
hLimiteParcoursLe 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é.
<Source>.Trouve vaudra Faux et <Source>.EnDehors vaudra Vrai.
Cette constante permet d'optimiser la vitesse de recherche en mode Client/Serveur.
hRespecteFiltreLe 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 données de taille importante, des problèmes de performances peuvent survenir.
Hyper File 5.5 Cette variable ne peut pas être utilisée.
Par défaut, le parcours suivant la fonction <Source>.RechercheDernier ne prend pas en compte le filtre.
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 Connecteur 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 DBConnecteurs Natifs (Accès Natifs) Si le provider OLE DB ou le Connecteur Natif utilisé ne gère pas les blocages, les options de blocage seront sans effet.
OLE DB Le mode de blocage spécifié avec la fonction <Source>.RechercheDernier restera effectif lors des appels aux fonctions <Source>.Précédent et <Source>.Suivant.
Pour modifier le mode de blocage, il est nécessaire d'utiliser :
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 enregistrements 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 (la fonction HTrouve renvoie Vrai).
  • Recherche à l'identique : Recherche tous les enregistrements correspondant exactement à la valeur indiquée.
    Par exemple : Lors d'une recherche à l'identique sur la chaîne "Matin" 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éeOptions<Source>.RechercheDernier positionne sur l'enregistrementHTrouve renvoieHEnDehors renvoieExplications
Durand6VraiFauxDurand existe.
Le début du fichier de données n'a pas encore été atteint.
Dupuis5FauxFauxDupuis n'existe pas. Positionnement sur la première valeur inférieure (Dupont).
Le début du fichier de données n'a pas encore été atteint.
DuponHGénérique5VraiFauxDupon n'existe pas mais la recherche est générique et il existe un Dupont (entre autres).
Le début du fichier de données n'a pas encore été atteint.
DuponL'enregistrement n'a pas été trouvé (pas de déplacement)FauxFauxDupon n'existe pas.
Le début du fichier de données n'a pas encore été atteint.
BernardL'enregistrement n'a pas été trouvé (pas de déplacement)FauxVraiBernard n'existe pas.
Positionnement sur la première valeur inférieure (cette valeur n'existe pas) : Le début du fichier de données est donc atteint.

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 :
HRechercheDernier(<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
Client.RechercheDernier(Nom_Prénom, ["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 <Source>.Filtre), la recherche tient compte du filtre.
Hyper File 5.5 Si un filtre est actif, la recherche ne tient pas compte du filtre.
WINDEVWEBDEV - Code ServeurEtats et RequêtesiPhone/iPadUniversal Windows 10 AppJavaAjaxCode Utilisateur (MCU)Langage ExterneHFSQLHFSQL Client/ServeurHyper File 5.5OLE DBConnecteurs Natifs (Accès Natifs)

Blocages

Les blocages ne s'appliquent que lorsque un enregistrement a été trouvé.
Par défaut (pas de mode de blocage spécifié dans le paramètre <Options>), aucun blocage de l'enregistrement n'est réalisé.
Si un blocage est demandé (constantes hBlocageEcriture ou hBlocageLectureEcriture), la lecture de l'enregistrement sera réalisée uniquement si cet enregistrement n'est pas déjà bloqué.
Si le fichier de données est verrouillé par la fonction HDébutVerrou, il est inutile de spécifier un paramètre de blocage : le blocage spécifié avec la fonction HDébutVerrou est automatiquement pris en compte. Pour ne pas prendre en compte le blocage réalisé avec la fonction HDébutVerrou, utilisez la constante hBlocageNon.
Rappel : Un enregistrement bloqué peut être débloqué avec la fonction <Source>.DébloqueNumEnr.
OLE DBConnecteurs Natifs (Accès Natifs) Si le provider OLE DB ou le Connecteur Natif utilisé ne gère pas les blocages, les options de blocage seront sans effet.
Composante : wd250hf.dll
Version minimum requise
  • Version 25
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire