30. ECPG - SQL embarqué dans du C

30.1. Concept
30.2. Se connecter au serveur de bases de données
30.3. Fermer une connexion
30.4. Exécuter des commandes SQL
30.5. Choisir une connexion
30.6. Utiliser des variables hôtes
30.7. SQL dynamique
30.8. Utiliser les zones des descripteurs SQL
30.9. Gestion des erreurs
30.10. Inclure des fichiers
30.11. Traiter les programmes comportant du SQL embarqué
30.12. Fonctions de la bibliothèque
30.13. Internes

Ce chapitre décrit l'interface 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 à travers de nombreuses ressources traitant du SQL.

30.1. Concept

Un programme SQL embarqué consiste en du code écrit dans un langage de programmation ordinaire, dans le cas présent, le C, 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'implémentation 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.