102
CHAPITRE 4. LANGAGE SQL
4.11 SQL intégré
4.11.1
Introduction
Ce chapitre décrit le pacquage SQL embarqué pour PostgreSQL ECPG. Il est compatible avec les
langages C et C++ et a été développé par Linus Tolke et Michael Meskes.
Un programme SQL embarqué est en fait un programme ordinaire, dans notre cas un programme
en langage C, dans lequel nous insérons des commandes SQL incluses dans des sections spécialement
marquées. Ainsi les instructions Embedded SQL commencent par les mots EXEC SQL et se terminent par
un point-virgule (« ; »). Pour générer l’exécutable, le code source est d’abord traduit par le préprocesseur
SQL qui convertit les sections SQL en code source C ou C++, après quoi il peut être compilé de manière
classique.
Le SQL embarqué présente des avantages par rapport à d’autres méthodes pour prendre en compte
des commandes SQL dans du code C. Par exemple, le passage des informations de et vers les variables
du programme C est entièrement pris en charge. Ensuite, le code SQL du programme est vérifié syntaxi-
quement au moment de la précompilation. Enfin, le SQL embarqué en C est spécifié dans le standard
SQL et supporté par de nombreux systèmes de bases de données SQL. L’implémentation PostgreSQL est
conçue pour correspondre à ce standard autant que possible, afin de rendre le code facilement portable
vers des SGBD autre que PostgreSQL.
Comme alternative au SQL intégré, on peut citer l’utilisation d’une API (Application Programming In-
terface) permettant au programme de communiquer directement avec le SGBD via des fonctions fournies
par l’API. Dans ce cas de figure, il n’y a pas de précompilation à effectuer. Se référer à la documentation
PostgreSQL (The PostgreSQL Global Development Group, 2005) pour plus d’information à ce sujet :
Chapitre 27. libpq – Bibliothèque C.
4.11.2 Connexion au serveur de bases de données
Introduction
Quelque soit le langage utilisé (C, Java, PHP, etc.), pour pouvoir effectuer un traitement sur une base
de données, il faut respecter les étapes suivantes :
1. établir une co