Chapitre 30. ECPG - SQL embarqué dans du C

Table des matières
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.6.1. Aperçu
30.6.2. Sections de déclaration
30.6.3. SELECT INTO et FETCH INTO
30.6.4. Indicateurs
30.7. SQL dynamique
30.8. Utiliser les zones des descripteurs SQL
30.9. Gestion des erreurs
30.9.1. Configurer des rappels
30.9.2. sqlca
30.9.3. SQLSTATE contre SQLCODE
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 fonctionne avec le C et le C++. Il a été écrit par Linus Tolke () et Michael Meskes ().

Il ne fait aucun doute que cette documentation est assez incomplète. Mais du fait de la sandardisation 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 outil de compilation 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.