4D v16Accéder au moteur SQL de 4D |
||
|
4D v16
Accéder au moteur SQL de 4D
Accéder au moteur SQL de 4D
Le moteur SQL intégré de 4D peut être interrogé de trois manières :
Il est possible de faire référence à tout type d’expression 4D valide (variable, champ, tableau, expression...) au sein des clauses WHERE et INTO des expressions SQL. Pour désigner une référence 4D, vous pouvez utiliser indifféremment l’une des deux notations suivantes :
Exemples : C_TEXTE(vNom) ou bien : C_TEXTE(vNom) Note : Lorsque vous manipulez des variables interprocess (nommées <>mavar), vous devez encadrer le nom des variables avec des crochets [] (par exemple <<[<>mavar]>> ou :[<>mavar]). En mode compilé, vous pouvez utiliser des références de variables locales (débutant par le caractère $) dans les instructions SQL sous certaines conditions :
Les données issues d’une commande SELECT doivent être manipulées soit à l’intérieur d’un bloc Debut SQL/Fin SQL via la clause INTO de la commande SELECT, soit via les commandes 4D du thème “SQL” :
La principale différence entre les deux façons de récupérer les données issues d’une requête SQL (balises Debut SQL/Fin SQL et commandes SQL) est que dans le premier cas toutes les informations sont retournées à 4D en une seule fois, tandis que dans le second cas chaque enregistrement doit être chargé explicitement à l’aide de la commande SQL CHARGER ENREGISTREMENT. Par exemple, en supposant que la table PERSONS comporte 100 enregistrements :
Si, au lieu d’un tableau nous souhaitons récupérer les données dans un champ 4D, 4D créera automatiquement autant d’enregistrements que nécessaire pour contenir toutes les valeurs. Reprenons l’exemple d’une table PERSONS contenant 100 enregistrements :
4D inclut un automatisme spécifique permettant de placer les données issues d’une requête SELECT dans une listbox. Pour plus d’informations, reportez-vous au manuel Mode Développement. Pour des raisons d’optimisation, il est préférable d’utiliser des expressions 4D plutôt que des fonctions SQL dans les requêtes. En effet, les expressions 4D seront calculées une fois avant l’exécution de la requête tandis que les fonctions SQL sont évaluées pour chaque enregistrement trouvé. Par exemple, avec l’instruction suivante : SQL EXECUTER("SELECT nomcomplet FROM PEOPLE WHERE nomcomplet=<<vNom+vPrenom>>") ... l’expression vNom+vPrenom est calculée une fois, avant l’exécution de la requête. Avec l’instruction suivante : SQL EXECUTER("SELECT nomcomplet FROM PEOPLE WHERE nomcomplet=CONCAT(<<vNom>>,<<vPrenom>>)") ... la fonction CONCAT(<<vNom>>,<<vPrenom>>) est appelée pour chaque enregistrement de la table, autrement dit l’expression est évaluée pour chaque enregistrement.
Voir aussi
|
PROPRIÉTÉS
Produit : 4D
HISTORIQUE
UTILISATION DE L'ARTICLE
4D - Référence SQL ( 4D v16) |