Chapitre 29. ECPG - SQL embarqué dans du C

Table des matières
29.1. Concept
29.2. Se connecter au serveur de bases de données
29.3. Fermer une connexion
29.4. Exécuter des commandes SQL
29.5. Choisir une connexion
29.6. Utiliser des variables hôtes
29.6.1. Aperçu
29.6.2. Sections de déclaration
29.6.3. SELECT INTO et FETCH INTO
29.6.4. Indicateurs
29.7. SQL dynamique
29.8. Utiliser les zones des descripteurs SQL
29.9. Gestion des erreurs
29.9.1. Configurer des rappels
29.9.2. sqlca
29.9.3. SQLSTATE contre SQLCODE
29.10. Inclure des fichiers
29.11. Traiter les programmes comportant du SQL embarqué
29.12. Fonctions de la bibliothèque
29.13. Internes

Ce chapitre décrit le paquet 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 puisque cette interface est standardisée, des informations supplémentaires sont disponibles au sein de nombreuses ressources sur SQL.

29.1. Concept

Un programme SQL embarqué consiste en du code écrit dans un langage de programmation ordinaire, dans ce cas le C, mixé avec 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, puis il peut être traité par un compilateur C.

Le SQL embarqué a des avantages sur les autres méthodes pour gérer les commandes SQL dans du code C. Premièrement, il s'occupe du passage laborieux des informations de et vers les variables de votre 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 à ce standard autant que possible, et il est habituellement possible de porter les programmes SQL embarqués écrits pour les autres bases de données SQL vers PostgreSQL avec une relative facilité.

Comme indiqué, les programmes écrits pour l'interface SQL embarqué sont des programmes C normaux avec un code spécial inséré pour réaliser les actions relatives à 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 pourraient 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.