Le type « Requête SQL » dans Windev est un type de variable permettant d’y déclarer une requête SQL en prenant en compte les paramètres passés à la requête pour la construire, l’exécuter et récupérer le résultat. Le code de la requête doit obligatoirement être écrit lors de sa déclaration.
</Avantages>
L’un des principaux avantages est le fait de chainer les paramètres, ce qui empêche toute injection SQL. Et ainsi évite tout détournement des requêtes SQL exécutées dans le logiciel. Les paramètres sont optionnels, c’est-à-dire qu’il est possible d’enlever une condition dans un WHERE. L’exécution, le parcours et la lecture des membres de la requêtes se font tous avec le seul objet déclaré de type « Requête SQL ». L’affichage automatique des erreurs de syntaxe. Les membres retournés par le « SELECT » sont automatiquement proposés lors de l’écriture du code, ce qui évite les fautes de frappes.
</Inconvénients>
La compilation de la requête pour l’affichage automatique des erreurs de syntaxe. En effet ce système est basé sur les requêtes gérées sous HFSQL. Ce qui fait que si vous utilisez ce type de variable via un accès natif. Certaines requêtes ne seront pas possibles à déclarer car les fonctions ne sont pas reconnues. Il est impossible de requêter des fichiers qui ne sont déclarés autrement que via l’analyse du projet.
</Déclaration>
La déclaration de la requête SQL se fait obligatoirement lors de la déclaration de l’objet. Les paramètres de la requête sont fait via des variables déclarées à l’aides des balises « { » et « } ».
</Utilisation>
Pour passer des paramètres à une requête, il suffit d’appeler me membre et de lui attribuer sa valeur.
🚩 La valeur par défaut des paramètres déclarés est égale à « Null ».
🚩 Les paramètres ayant la valeur « Null » sont ignorés dans la requête. Ce qui permet de bypasser un paramètre dans certaines conditions.
Pour parcourir le résultat de la requête, il est possible d’utiliser un « POUR TOUT », ou les fonctions « H » (HlitPremier(), HLitSuivant() et HEnDehors()).
</Spécificités>
Pour le passage d’un paramètre de type IN, les valeurs doivent être séparées par des « ; » au lieu des « , » habituelles. La requête est automatiquement modifiée par WIndev avant son exécution, pour bloquer les injections SQL et gérer les paramètres qui n’ont pas été déclarés par exemple. C’est pourquoi il est possible de passer l’option « hRequêteSansCorrection » lors de l’exécution de la requête afin qu’elle ne soit pas modifiée. Cette option est obligatoire si vous voulez effectuer des requêtes multi-bases.