Commençons par une requête très simple : nous voulons savoir combien de films contient notre vidéothèque. En langage 4D, cette requête peut s'écrire ainsi :
- La troisième façon d'interagir avec le moteur SQL est d'utiliser la commande 4D CHERCHER PAR SQL. Le code devient :
La commande CHERCHER PAR SQL exécute une requête de type SELECT pouvant s'écrire de la manière suivante :
SELECT *
FROM maTable
WHERE <Formule_SQL>
maTable est le nom de la table passé en premier paramètre et Formule_SQL est le texte de la requête, passé en second paramètre :
Dans notre cas, il n'y a pas de clause WHERE, donc nous en ajoutons une : "ID <> 0". L'équivalent de la requête en code SQL serait :
SELECT *
FROM MOVIES
WHERE ID <> 0
- La quatrième façon d'interagir avec le moteur SQL est d'utiliser la commande SQL dynamique EXECUTE IMMEDIATE. Le code devient alors :
C_ENTIER LONG(AllMovies)
AllMovies:=0
C_TEXTE(tQueryTxt)
tQueryTxt:="SELECT COUNT(*) FROM MOVIES INTO :AllMovies"
Debut SQL
EXECUTE IMMEDIATE :tQueryTxt;
Fin SQL
ALERTE("La videothèque contient "+Chaine(AllMovies)+" films")
Attention : Vous constatez que dans ce dernier exemple, nous utilisons des variables process. Ce principe est nécessaire si vous souhaitez utiliser la base en mode compilé. Dans ce contexte en effet, il n'est pas possible d'utiliser de variables locales avec la commande EXECUTE IMMEDIATE.
Pour tester tous ces exemples, lancez la base "4D SQL Code Samples" et affichez la boîte de dialogue principale. Dans la partie gauche de la fenêtre, choisissez le mode d'interrogation du moteur de 4D :

Puis cliquez sur le bouton Requêtes SQL vers variables.