Bonjour,
dans cette vidéo nous allons apprendre à mettre en oeuvre des commandes SQL simples intégrées à la programmation de 4D sous 2 formes :
- plusieurs lignes de commande SQL insérées dans un bloc de traitement SQL
- une seule ligne de commande qui exécute la liste de commandes stockées dans une variable texte.
En complément du langage de 4D, nous pouvons intégrer dans 4D des commandes SQL comme vous le faites dans d’autres outils :
- mysql_query en PHP
- INCLUDE SQLCA en COBOL
- etc ...
Ces commandes peuvent être intégrées dans les développements existants de manière très simple.
Nous allons reprendre notre formulaire statistiques pour calculer le même tableau à partir de commandes SQL :
- Je duplique le bouton
- le début de la méthode reste le même
- n'ayant pas encore sélectionné de fiches, le tableau des techniciens aura 0 lignes
- nous ajoutons le tableau des identifiants techniciens dans une variable locale, on n'a pas besoin de la conserver ultérieurement
- ensuite, j'intègre mon code SQL
Il s'agit de sélectionner le nom et l'identifiant de la table techniciens et de transférer dans les 2 tableaux.
Notez la syntaxe qui indique à 4D de transférer le résultat dans les tableaux. On utilise le nom de la variable précédé du symbole “:” (deux-points).
La suite de la méthode (dimensionnement du tableau des interventions) reste globalement structurée de la même manière :
- on rajoute juste la valeur de $Nb pour savoir combien de techniciens on a à traiter?
- Ensuite on enlève toute la fin qu'on remplace par les commandes SQL :
- on stocke dans une variable l'identifiant du technicien à traiter
- on exécute les commandes SQL qui tiennent compte de la date de début et de fin d'année
- et ensuite on valorise le tableau des interventions à la ligne i
À l'exécution de la méthode,
- ici nous passons le code SQL
- nos techniciens sont bien au nombre de 7
- on dimensionne le tableau des intervetnions
- puis pour chaque valeur du tableau, on va faire un
SELECT COUNT
- stocker dans une variable $Result
- qui va valoriser le tableau
et qu'on choisisse l'une ou l'autre des options, nous obtenons bien le même résultat.
Une autre manière de programmer, notamment cette première partie aurait été de l'écrire de cette manière :
- c'est-à-dire qu'on écrit la requête dans une variable texte
- et ensuite entre un Début SQL et une Fin SQL on utilise la commande
EXECUTE IMMEDIATE
à laquelle on passe la requete sous forme de texte
ce qui donne exactement le même résultat que ceci.