SQL EXECUTE
SQL EXECUTE ( instructionSQL {; objetLié}{; objetLié2 ; ... ; objetLiéN} )
Paramètre | Type | Description | |
---|---|---|---|
instructionSQL | Texte | 🡒 | Commande SQL à exécuter |
objetLié | Variable, Champ | 🡘 | Réception du résultat (si nécessaire) |
Description
La commande SQL EXECUTE permet d’exécuter une commande SQL et d’associer le résultat à des objets 4D (tableaux, variables ou champs) liés.
Pour que la commande puisse être exécutée, une connexion valide doit être définie dans le process courant.
Le paramètre instructionSQL contient la commande SQL à exécuter. Le paramètre objetLié reçoit les résultats. Les objets sont liés dans l’ordre de la colonne, ce qui signifie que les éventuelles colonnes distantes supplémentaires sont ignorées.
Si des champs 4D sont passés dans le(s) paramètre(s) objetLié, la commande créera des enregistrements et les sauvegardera automatiquement. Les champs doivent appartenir à la même table (il n’est pas possible de passer un champ de la table 1 et un champ de la table 2 dans le même appel). Si des champs de tables différentes sont passés, une erreur est générée.
Attention : Lorsque vous passez des champs 4D dans le(s) paramètre(s) objetLié et exécutez la commande SELECT, ce sont toujours les données de la source 4D distante qui sont modifiées. Si vous souhaitez récupérer en local des données de la source distante, vous devez utiliser des tableaux locaux intermédiaires et appeler la commande INSERT (cf. exemple 6).
Si vous passez des tableaux ou des variables 4D dans le(s) paramètre(s) objetLié, il est conseillé de les déclarer préalablement à l’appel de la commande afin de contrôler le type de données traitées. Les tableaux sont redimensionnés automatiquement si nécessaire.
Dans le cas d’une variable 4D, un seul enregistrement est récupéré à la fois.
Note : Pour plus d'informations sur le référencement des expressions 4D dans les requêtes SQL, reportez-vous à la section Présentation des commandes du thème SQL.
Exemple 1
Dans cet exemple, nous récupérons la colonne ename de la table emp dans la source de données. Le résultat est stocké dans le champ 4D [Employés]Nom. Les enregistrements 4D seront créés automatiquement :
SQLStmt:="SELECT ename FROM emp"
SQL EXECUTE(SQLStmt;[Employés]Nom)
SQL LOAD RECORD(SQL all records)
Exemple 2
Pour mieux contrôler la création des enregistrements, il est possible d’inclure le code au sein d’une transaction et de ne la valider que si le déroulement de l’opération s’est avéré satisfaisant :
SQL LOGIN("mysql";"root";"")
SQLStmt:="SELECT alpha_field FROM app_testTable"
START TRANSACTION