PreviousNext
Help > Développement > Accès aux données de l'AS/400 > SQL > Requêtes préparées
Requêtes préparées

 HPrépareRequêteSQL

 

Cette fonction 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 encore exécutée.

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.

 

La requête pourra ensuite être exécutée grâce à la fonction HExécuteRequêteSQL .

Pour libérer les ressources de cette requête, utilisez la fonction HAnnuleDéclaration .

Attention, il est possible que certains fichiers restent ouverts par le moteur SQL de l'AS400 qui anticipe ainsi une prochaine requête.

 

Les requêtes paramétrées (ou procédures stockées) susceptibles de renvoyer plusieurs résultats ne sont pas gérées.

 

HExécuteRequêteSQL

 

Cette fonction exécute une requête préalablement déclarée par HPrépareRequêteSQL ou bien sur une chaîne SQL.

 

La syntaxe avec connexion doit être utilisée si la requête fait référence à un fichier qui n'est pas dans l'analyse ou avec le mode HRequêteSansCorrection.

 

Le mode HRequêteSansCorrection doit être utilisé si la requête fait apparaître un nom de bibliothèque ou des ordres spécifiques.

 

 

Paramètres

 

L'utilisation de paramètres dans la requête (préparée) utilise une syntaxe nommée : chaque nom doit être précédé du caractère ":" (deux points) dans la requête initiale.

C'est en général le moyen le plus performant de passer des paramètres dans une requête.

 

//Préparation de la requête pour de multiples exécutions

HPrépareRequêteSQL ( Insert , Connexion , ...

RequeteSansCorrection , "INSERT INTO PERSONE VALUES (:nom, :prenom, :age )" )

// Boucle d'exécution de la requête

// Seuls quelques paramètres sont modifiés

POUR i =1 A 10

 Insert.nom = "Nom" + i

 Insert.prenom = "Prenom" + i

 Insert.Age = i

 HExécuteRequêteSQL (Insert)

FIN