PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Présentation
  • Utiliser la fonction HExécuteRequête pour passer les paramètres à une requête
  • Syntaxe à utiliser
  • Utiliser la notation .
  • Syntaxe à utiliser
  • Ne pas spécifier tous les paramètres
  • Paramètres de la requête non précisés
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
Deux méthodes pour passer des paramètres à une requête
Présentation
Pour passer des paramètres à une requête paramétrée utilisée dans une fenêtre ou dans un champ (par exemple champ Liste, Combo ou Table), le WLangage offre deux possibilités :
  • soit passer les paramètres directement dans la fonction WLangage HExécuteRequête.
  • soit utiliser la notation <Nom de la requête>.<Nom du paramètre>, puis la fonction HExécuteRequête.
Cette page d'aide présente le mode d'utilisation et les avantages de chacune de ces méthodes.
Remarque : Si la requête paramétrée est utilisée dans un état, le mode de passage des paramètres varie. Pour plus de détails, consultez Comment utiliser une requête paramétrée dans un état.
Remarque : A partir de la version 19, HFSQL est le nouveau nom de HyperFileSQL.
Utiliser la fonction HExécuteRequête pour passer les paramètres à une requête

Syntaxe à utiliser

Lors de l'exécution d'une requête avec la fonction HExécuteRequête, les derniers paramètres passés à la fonction correspondent aux paramètres de la requête.
La syntaxe utilisée est la suivante :
<Résultat> = HExécuteRequête(<Nom requête> [, <Connexion>] [, <Mode>
[, <Paramètres> [, ...]]])
Attention : Dans ce cas :
  • Les valeurs des paramètres de la requête doivent être indiquées dans leur ordre d'initialisation (visible sous l'éditeur de requêtes). Chaque paramètre doit correspondre au type attendu. Les différents paramètres sont séparés par une virgule.
  • Pour spécifier les paramètres de la requête, il est nécessaire de spécifier le mode d'initialisation de la requête.
Utiliser la notation <Nom de la requête>.<Nom du paramètre>

Syntaxe à utiliser

Pour passer des paramètres à une requête, il est possible de préciser au moteur HFSQL tous les paramètres de la requête avant d'exécuter la requête. Cette méthode permet de préciser les différents paramètres dans n'importe quel ordre (intéressant pour les requêtes nécessitant de nombreux paramètres).
La syntaxe à utiliser est la suivante :
<Nom de la requête>.<Nom du paramètre 1> = <Valeur du paramètre 1>
<Nom de la requête>.<Nom du paramètre 2> = <Valeur du paramètre 2>
...
<Nom de la requête>.<Nom du paramètre N> = <Valeur du paramètre N>

<Résultat> = HExécuteRequête(<Nom de la requête>
[, <Connexion>] [, <Mode>])
Attention :
  • Le nom du paramètre doit être le nom spécifié lors de la création de la requête sous l'éditeur de requête. Ce nom doit être différent d'un nom de rubrique.
  • Il n'est pas possible d'utiliser d'opérateurs d'indirection ou la compilation dynamique (fonction Compile) avec cette syntaxe.
  • A chaque exécution de la requête avec la fonction HExécuteRequête, les paramètres sont ré-initialisés (remis à 0).
  • Si au moins un paramètre est spécifié dans la fonction HExécuteRequête, tous les paramètres spécifiés précédemment seront ignorés.
  • La valeur du paramètre peut correspondre à NULL.
  • Si un des paramètres n'est pas précisé, la condition correspondante ne sera pas prise en compte.
PHP Il est obligatoire de spécifier tous les paramètres attendus.
AndroidJava Il est obligatoire de spécifier tous les paramètres attendus.
Ne pas spécifier tous les paramètres
WINDEVWEBDEV - Code ServeurEtats et RequêtesWindowsAndroidiPhone/iPadWindows MobileJavaHFSQLHFSQL Client/ServeurHyper File 5.5OLE DBODBCAccès Natifs

Paramètres de la requête non précisés

Quelle que soit la façon de passer les paramètres à la requête, tous les paramètres de la requête ne doivent pas obligatoirement être précisés. Les conditions de la requête utilisant des paramètres non précisés seront ignorées.
Exemple : Soit la requête "REQ_Clients_nom_prénom" dont le code SQL est le suivant :
SELECT * FROM CLIENT WHERE NOM = {Param1} AND PRENOM = {Param2}
  • Les 2 paramètres sont donnés :
    HExécuteRequête(REQ_Clients_nom_prénom, hRequêteDéfaut, ...
    "Dupond", "Jean")
    exécutera la requête
    SELECT * FROM CLIENT WHERE NOM = 'Dupond' AND PRENOM = 'Jean'
  • Seul le nom est donné :
    HExécuteRequête(REQ_Clients_nom_prénom, hRequêteDéfaut, "Dupond" )
    exécutera la requête
    SELECT * FROM CLIENT WHERE NOM = 'Dupond'
  • Seul le prénom est donné. Le nom doit cependant être spécifié et correspondre à NULL.
    sNom est un Variant = Null
    // Utilisation du variant obligatoire
    // pour variable de type Null (non renseignée)

    HExécuteRequête(REQ_Clients_nom_prénom, hRequêteDéfaut, ...
    sNom, "Jean")

    // OU

    HExécuteRequête(REQ_Clients_nom_prénom, hRequêteDéfaut, ...
    Null, "Jean")
    exécutera la requête :
    SELECT * FROM CLIENT WHERE PRENOM = 'Jean'
AndroidJava Remarque : Il est obligatoire de spécifier tous les paramètres attendus.
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire