PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE


  • Rubrique de parcours
  • Parcours des requêtes
  • Blocages
  • Mémos
  • Mot de passe
  • Accès Natif XML
  • Divers
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Positionne sur le premier enregistrement d'un fichier de données en fonction d'une rubrique de parcours. L'enregistrement est lu et les variables HFSQL (par exemple Client.Nom, c'est-à-dire la rubrique Nom du fichier Client) sont mises à jour.
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).
En général, la fonction HLitPremier permet de se positionner dans le fichier de données pour effectuer une boucle de lecture avec la fonction HLitSuivant.
Après l'exécution de la fonction HLitPremier, plusieurs cas peuvent se présenter :
  • le fichier de données est vide ou il n'existe pas d'enregistrement correspondant au filtre (défini par HFiltre) : aucune lecture n'est effectuée et la fonction HEnDehors renvoie Vrai.
  • la fonction tente de lire un enregistrement déjà bloqué en lecture : aucune lecture n'est effectuée, la fonction HErreurBlocage renvoie Vrai et la fonction HEnDehors 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 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.
    PHP La gestion des blocages n'est pas disponible.
    Java Accès par JDBC : La gestion des blocages n'est pas disponible sur les bases de données accédées par JDBC.
Cette fonction peut être utilisée indifféremment avec les fichiers de données, les vues HFSQL ou les requêtes.
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
HLitPremier(Client, Nom)
TANTQUE HEnDehors(Client) = Faux
// Traitement de l'enregistrement
HLitSuivant(Client, Nom)
FIN
Syntaxe
<Résultat> = HLitPremier([<Nom du fichier> [, <Nom de la rubrique de parcours>] [, <Options>]])
<Résultat> : Booléen
Correspond à :
  • Faux en cas d'erreur. Dans ce cas, la fonction HErreur renvoie un entier différent de 0. La fonction HErreurInfo permet d'obtenir plus de détails sur l'erreur. L'enregistrement n'est pas lu.
  • la valeur de la fonction HTrouve dans les autres cas (l'enregistrement peut être lu, même si <Résultat> renvoie Faux).
<Nom du fichier> : Chaîne de caractères optionnelle (avec ou sans guillemets)
Nom du fichier de données, de la vue HFSQL ou de la requête manipulé. Si ce paramètre correspond à une chaîne vide (""), la fonction HLitPremier manipule le dernier fichier de données utilisé par la dernière fonction de gestion HFSQL (fonction commençant par la lettre H).
<Nom de la rubrique de parcours> : Chaîne de caractères optionnelle (avec ou sans guillemets)
Nom de la rubrique utilisée pour parcourir le fichier de données ou la vue (ce paramètre n'est pas pris en compte pour les requêtes). Si ce nom n'est pas spécifié, la fonction HLitPremier va utiliser :
  • Dans le cas d'un fichier de données : la dernière rubrique de parcours utilisée sur ce fichier par la dernière fonction de gestion HFSQL (fonction commençant par la lettre H). Si cette rubrique n'existe pas, la meilleure rubrique de parcours est automatiquement utilisée.
  • Dans le cas d'une requête : le ORDER BY de la requête si il existe, sinon selon la dernière rubrique utilisée.
  • Dans le cas d'une vue : la rubrique de tri de la vue (si elle existe), sinon sur la dernière rubrique utilisée.
<Options> : Constante optionnelle
Permet de paramétrer :
  • le blocage réalisé sur l'enregistrement lu par la fonction HLitPremier
  • la prise en compte ou non du filtre précédemment défini.
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.
PHP Cette constante n'est pas disponible.

Java Accès par JDBC : Cette constante n'est pas disponible.
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.
PHP Cette constante n'est pas disponible.

Java Accès par JDBC : Cette constante n'est pas disponible.
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.

PHP Cette constante n'est pas disponible.

Java Accès par JDBC : Cette constante n'est pas disponible.
Versions 17 et supérieures
hForwardOnly
Nouveauté 17
hForwardOnly
hForwardOnly
Connecteurs Natifs (Accès Natifs) Constante utilisable uniquement avec les Accès Natifs.
Permet d'accélérer le parcours des données lors d'un parcours simple qui n'utilise pas les fonctionnalités suivantes :
  • Lecture de l'enregistrement précédent.
  • Modification d'un enregistrement.
  • Sauvegarde de position.
Si une de ces fonctionnalités est utilisée, le résultat peut être différent de celui attendu.
Cette constante peut par exemple être utilisée lors d'un parcours permettant de remplir une table mémoire.
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 constante ne peut pas être utilisée.
hSansRafraîchir
OLE DBConnecteurs Natifs (Accès Natifs) La fonction HLitPremier ne rafraîchit pas le contenu de la table ou de la requête. Dans la mesure du possible, la requête n'est pas ré-exécutée. Toutes les positions sauvegardées sont conservées.
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.
OLE DBConnecteurs Natifs (Accè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.
OLE DB Le mode de blocage spécifié avec la fonction HLitPremier restera effectif lors des appels aux fonctions HLitPrécédent et HLitSuivant.
Pour modifier le mode de blocage, il est nécessaire d'utiliser :
Connecteurs Natifs (Accès Natifs) Pour l'Accès Natif Oracle, il est possible de spécifier un mode de blocage différent pour chaque enregistrement. Cependant, si une transaction a été démarrée à l'aide de la fonction SQLTransaction avant de procéder au blocage, le blocage ne sera relâché qu'à la fin de la transaction (fonction SQLTransaction avec la constante SQLFin ou SQLAnnule).
Hyper File 5.5 Les options de blocage ne sont pas prises en compte. Utilisez des fonctions de lecture bloquantes (HLitPremierBloque) conservées par compatibilité.
PHP Les options de blocage ne sont pas disponibles.
Java Accès par JDBC : La gestion des blocages n'est pas disponible sur les bases de données accédées par JDBC.
Remarques

Rubrique de parcours

Si la rubrique de parcours utilisée est une clé, la fonction HLitPremier lit l'enregistrement pour lequel la valeur de la clé est la plus petite. L'ordre de tri pris en compte est l'ordre de tri spécifié dans l'analyse pour cette clé. En cas de doublons, HLitPremier lit le premier enregistrement "doublon" selon l'ordre des numéros d'enregistrement. Si la rubrique de parcours n'est pas une clé, la fonction HLitPremier lit le premier enregistrement actif. En cas de parcours du fichier, les enregistrements seront triés selon leur numéro d'enregistrement.
Dans ce cas, la rubrique de parcours sélectionnée apparaîtra en rouge sous l'éditeur de code et un warning sera affiché dans le volet "Code". Remarque : La complétion automatique propose uniquement les rubriques clés.
WINDEVWEBDEV - Code ServeurWINDEV MobileOLE DBConnecteurs Natifs (Accès Natifs)

Parcours des requêtes

Par défaut, la fonction HLitPremier ré-exécute la requête pour rafraîchir le résultat de la requête. Il est conseillé d'utiliser la constante hSansRafraîchir pour éviter la ré-exécution de la requête.
Parcours d'une requête exécutée avec la constante hRequêteSansCorrection :
Pour parcourir les enregistrements dans l'ordre renvoyé par la base de données, il n'est pas nécessaire de préciser de rubrique de parcours. Exemple :
HExécuteRequête(MaRequête, hRequêteSansCorrection)
...
HLitPremier(MaRequête, hSansRafraîchir)
Si une rubrique de parcours est spécifiée, le résultat de la requête est intégralement récupéré et indexé. Le parcours est alors réalisé sur la rubrique spécifiée. Le tri initial de la requête (spécifié par ORDER BY) est ignoré. L'index créé (au format HFSQL) est sensible à la casse, sensible à la ponctuation, sensible aux accents et ascendant.
Exemple :
HExécuteRequête(MaRequête, hRequêteSansCorrection)
...
HLitPremier(MaRequête, MaRubrique, hSansRafraîchir)
Les recherches utilisent l'index créé sur le résultat de la requête.
WINDEVWEBDEV - Code ServeurEtats et RequêtesiPhone/iPadWindows MobileUniversal Windows 10 AppAjaxCode Utilisateur (MCU)Langage ExterneHFSQLHFSQL Client/ServeurProcédures stockéesHyper File 5.5OLE DBConnecteurs Natifs (Accès Natifs)

Blocages

Par défaut (paramètre <Option> non spécifié), 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 de HDébutVerrou, utilisez la constante hBlocageNon.
OLE DBConnecteurs Natifs (Accè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.

Mémos

Les mémos associés à l'enregistrement peuvent être automatiquement lus ou non lors de la lecture de l'enregistrement. La fonction HGèreMemo permet de personnaliser cette lecture automatique.
Si les mémos sont gérés, lorsque l'enregistrement est lu, les mémos texte associés sont également lus. Les mémos binaires ne sont lus que lorsqu'ils sont utilisés explicitement (fonction HExtraitMémo).

Mot de passe

Si la fonction HLitPremier est la première fonction manipulant le fichier de données spécifié, la vérification du mot de passe est effectuée lors de l'ouverture du fichier de données. Si le mot de passe est incorrect, la fonction HErreurMotDePasse renvoie Vrai et la fonction HEnDehors renvoie Vrai.
WINDEVWEBDEV - Code ServeurEtats et RequêtesWindowsCode Utilisateur (MCU)Procédures stockéesConnecteurs Natifs (Accès Natifs)

Accès Natif XML

Le comportement de la fonction HLitPremier est lié aux fonctions HActiveFiltreAuto/HDésactiveFiltreAuto.
Par défaut, la fonction HActiveFiltreAuto est activée.
Ainsi, pour lire le contenu d'un document XML, il suffit de lire le contenu du fichier principal (le parent) puis des fichiers liés (les fils).
Par défaut, lors de la lecture dans un fichier de données, un filtre est automatiquement réalisé sur les fichiers de données reliés pour lire uniquement les enregistrements correspondant au fichier principal.
Par exemple :
Lors du parcours du fichier Person, il est possible de connaître l'email de cette personne.
Pour cela, il suffit de se positionner sur le fichier "Person", puis d'utiliser la fonction HLitPremier sur le fichier "email".
Dans ce cas, l'enregistrement lu dans le fichier "email" correspondra au premier email associé à l'enregistrement en cours dans le fichier "Person".
Si ce mécanisme est désactivé (fonction HDésactiveFiltreAuto), l'enregistrement lu dans le fichier "email" correspondra au premier enregistrement du fichier email (et non au fils de l'enregistrement lu dans le fichier "Person").

Divers

  • Le numéro de l'enregistrement en cours est connu avec la fonction HNumEnr.
  • La fonction HChangeClé permet de modifier la clé de parcours, tout en restant positionné sur l'enregistrement en cours.
  • Pour optimiser le temps des premiers parcours d'un fichier, utilisez la fonction HOptimise sur ce fichier de données.
Composante : wd240hf.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire