|
|
|
|
|
- Quand utiliser la fonction HPrépareRequêteSQL ?
- Comment utiliser la fonction HPrépareRequêteSQL ?
- Condition sur une clé composée dans une requête SQL
HPrépareRequêteSQL (Fonction) En anglais : HPrepareSQLQuery
Disponible uniquement avec ce type de connexion
Initialise une requête écrite en langage SQL et déclare cette requête au serveur de base de données pour optimiser les prochaines exécutions de cette requête. Cette requête n'est pas exécutée. La requête pourra ensuite être exécutée grâce à la fonction HExécuteRequêteSQL. Cette fonction peut aussi bien être utilisée avec requêtes avec ou sans bind. Cette fonction est conseillée lors de l'exécution successive d'une même requête en modifiant uniquement quelques paramètres de cette requête à chaque exécution.
Cette fonction est optionnelle et ne peut être utilisée que sur des bases de données Client/Serveur (actuellement disponible sur Oracle, Oracle Lite, Sybase et SQL Server). En SQL Server, le Connecteur Natif via OLE DB ou via ODBC peut être nécessaire. Pour les autres bases accédées par un Connecteur Natif, OLEDB ou ODBC, la fonction HPrépareRequêteSQL exécute la requête. Sur les bases de données HFSQL (HFSQL Classic ou Client/Serveur) ou sur les bases xBase, cette fonction ne peut pas être utilisée.
Insert1 est une Source de Données
i est un entier
Insert1.Age = 0
HPrépareRequêteSQL(Insert1, ConnexionBase, ...
hRequêteSansCorrection, "INSERT INTO PERSONE VALUES (:nom, :prenom, :age )")
POUR i = 1 À 10
Insert1.nom = "Nom" + i
Insert1.prenom = "Prenom" + i
Insert1.Age = i
HExécuteRequêteSQL(Insert1)
FIN
Syntaxe
<Résultat> = HPrépareRequêteSQL(<Source de données> , <Connexion> , <Mode> , <Texte de la requête en SQL>)
<Résultat> : Booléen - Vrai si aucun problème n'a été rencontré,
- Faux dans le cas contraire. La fonction HErreurInfo permet d'obtenir plus d'informations sur le problème rencontré.
<Source de données> : Source de données Nom de la variable de type Source de données correspondant à la requête à initialiser. <Connexion> : Chaîne de caractères ou variable de type Connexion Nom de la connexion utilisée pour exécuter la requête. Cette connexion correspond : Si ce paramètre ne correspond pas à une connexion existante, <Résultat> est à Faux. <Mode> : Constante de type Entier | | hRequêteSansCorrection | Connecteur Natif uniquement : Aucune vérification n'est effectuée par le moteur HFSQL sur le texte de la requête. |
<Texte de la requête en SQL> : Chaîne de caractères Texte de la requête SQL à exécuter. Remarques Quand utiliser la fonction HPrépareRequêteSQL ? Dans certains cas, il peut être intéressant d'exécuter plusieurs fois une même requête en modifiant uniquement une (ou plusieurs) variable(s). Un cas courant consiste à exécuter plusieurs fois une requête d'insertion pour ajouter plusieurs enregistrements dans un fichiers. Plusieurs solutions peuvent être mises en place : - Exécuter directement la requête (avec la fonction HExécuteRequêteSQL) autant de fois que nécessaire en modifiant à chaque fois la ou les variable(s) voulue(s).
- Préparer la requête à exécuter (fonction HPrépareRequêteSQL) ainsi que les différentes variables à modifier puis exécuter la requête autant de fois que nécessaire avec la fonction HExécuteRequêteSQL. Cette seconde solution est beaucoup plus rapide et optimise le temps de parcours du résultat de la requête (cas d'une requête de sélection).
Comment utiliser la fonction HPrépareRequêteSQL ? Pour préparer et exécuter une requête plusieurs fois, il faut : - Déclarer une source de données. Cette source de données contiendra le résultat de la requête SQL.
- Déclarer les différentes variables de la requête.
Par défaut, les variables sont de type chaîne. Il est possible de préciser leur type en utilisant la propriété Type sur la variable. - Préparer la requête avec la fonction HPrépareRequêteSQL.
- Indiquer la valeur du ou des différents paramètres à prendre en compte et exécuter la requête à l'aide de la fonction HExécuteRequêteSQL. Seul le nom de la source de données correspondant à la requête doit être spécifié.
Cette dernière étape doit être répétée autant de fois que nécessaire. Remarques : - La fonction HPrépareRequêteSQL doit être utilisée avec :
- le nom de la connexion,
- la constante hRequêteSansCorrection.
- Les variables déclarées doivent être identiques à celles utilisées. Dans le cas contraire, une erreur WLangage est affichée.
- Dans l'appel à la procédure stockée, il est nécessaire d'utiliser la syntaxe spécifique à la base de données utilisée, y compris pour la syntaxe des paramètres.
Ainsi, pour Oracle, les paramètres sont spécifiés avec la syntaxe :NomParam. Attention : le caractère ":" doit être suivi d'au moins une lettre (la syntaxe :1 est interdite). Pour SQL Server, les paramètres sont spécifiés avec la notation @NomParam. Il est possible d'utiliser plusieurs fois le même paramètre. Dans ce cas, la variable correspondante sera ré-utilisée.
Condition sur une clé composée dans une requête SQL Pour définir une condition sur une clé composée dans une requête SQL, il faut préciser les conditions de chacune des composantes de la clé. Il ne faut pas tenter d'affecter directement la clé composée avec une valeur (en effet, les clés composées sont enregistrées sous forme de valeur binaire). Exemple : La clé composée des rubriques NOM et PRENOM (rubrique NOMPRENOM) :
SELECT UnFichier.UneRubrique, UnFichier.UneRubrique1
FROM UnFichier
WHERE UnFichier.Nom = "Dupont" AND UnFichier.Prenom = "Florence"
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|