31. ECPG - SQL embarqué dans du C

31.1. Concept
31.2. Se connecter au serveur de bases de données
31.3. Fermer une connexion
31.4. Exécuter des commandes SQL
31.5. Choisir une connexion
31.6. Utiliser des variables hôtes
31.7. SQL dynamique
31.8. Bibliothèque pgtypes
31.9. Mode de compatibilité Informix
31.10. Utiliser les zones de descripteur SQL
31.11. Gestion des erreurs
31.12. Directives du préprocesseur
31.13. Traiter les programmes en SQL embarqué
31.14. Fonctions de bibliothèque
31.15. Fonctionnement interne

Ce chapitre décrit le paquetage SQL embarqué pour PostgreSQL™. Il a été écrit par Linus Tolke () et Michael Meskes (). Originellement, il a été écrit pour fonctionner avec le langage C. Il fonctionne aussi avec le C++, mais il ne reconnaît pas encore toutes les constructions C++.

Cette documentation est assez incomplète. Mais du fait de la standardisation de cette interface, des informations complémentaires sont disponibles au travers de nombreuses ressources traitant du SQL.

31.1. Concept

Un programme SQL embarqué consiste en du code écrit dans un langage de programmation ordinaire, le C dans le cas présent, mélangé à des commandes SQL incluses dans des sections spécialement marquées. Pour construire le programme, le code source est d'abord passé au préprocesseur SQL embarqué qui le convertit en un programme C ordinaire. Il peut alors être traité par un compilateur C.

Le SQL embarqué a des avantages par rapport aux autres méthodes de gestion de commandes SQL dans du code C. Premièrement, il gère le passage laborieux des informations de et vers les variables du programme C. Deuxièmement, le code SQL du programme est vérifié syntaxiquement au moment de la construction. Troisièmement, 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'implantation PostgreSQL™ est conçue pour correspondre au mieux à ce standard. Il est de ce fait assez facile de porter les programmes SQL embarqués écrits pour d'autres bases de données SQL vers PostgreSQL™.

Comme indiqué précédemment, les programmes écrits pour l'interface SQL embarqué sont des programmes C normaux contenant un code spécial inséré pour réaliser les actions en relation avec la base de données. Ce code spécial a toujours la forme

EXEC SQL ...;

Ces instructions prennent syntaxiquement la place d'une instruction C. Suivant l'instruction particulière, elles peuvent apparaître dans le contexte global ou à l'intérieur d'une fonction. Les instructions SQL embarquées suivent les règles de sensibilité à la casse d'un code SQL normal, et non pas ceux du C.

Les sections suivantes expliquent toutes les instructions SQL embarquées.