V.8. Précompilation et compilation
A. Inclusion de fichiers
Dans sa description, pour inclure un fichier externe SQL
embarqué dans votre programme, utilisez la commande :
EXEC SQL INCLUDE nom_fichier;
Cette commande indique au préprocesseur du SQL
embarqué de chercher un fichier nommé nom_fichier.h, de traiter
et de l'inclure dans le fichier C généré. Du coup, les
instructions SQL embarqué du fichier inclus sont gérées
correctement.
En utilisant la directive classique
#include <nom_fichier.h>
95
De par sa sémantique, le fichier nom_fichier.h ne
serait pas sujet au pré-traitement des commandes SQL. A noter que cela,
vous permet de continuer à utiliser la directive #include
pour inclure d'autres fichiers d'en-tête.
B. Précompilation et compilation
Tout d'abord, il importe de préciser que, la
première étape consiste à traduire les sections SQL
embarqué en code source C, c'est-à-dire en appels de fonctions de
la librairie libecpg. En remettant cette étape en
cause, il s'avère qu'elle est assurée par le préprocesseur
appelé ecpg qui est inclus dans une installation standard de
PostgreSQL.
Face à cette étape, les programmes SQL
embarqué sont nommés typiquement avec une extension
.pgc. et que si vous avez un fichier programme nommé
prog.pgc, vous pouvez le passer au préprocesseur par la
simple commande [33] :
ecpg prog1.pgc
S'agissant ce fichier programme, cette étape permet de
créer le fichier prog.c. Si vos fichiers en
entrée ne suivent pas le modèle de nommage suggéré,
vous pouvez spécifier le fichier de sortie explicitement en utilisant
l'option -o.
Une fois ce fichier traité par le préprocesseur,
il peut alors être compilé de façon classique, comme le
démontre l'exemple suivant:
cc -c prog.c
En remettant en pratique ce fichier programme, il en est de
même que cette étape permet de créer le fichier
prog.o. Les fichiers sources en C générés
incluent les fichiers d'entête provenant de l'installation de
PostgreSQL. Si vous avez installé PostgreSQL
à un emplacement qui n'est pas parcouru par défaut, vous
devez ajouter une option comme - I/usr/local/pgsql/include sur la ligne de
commande de la compilation.
Cette mise à l'épreuve permet enfin de lier le
programme avec la bibliothèque libecpg qui contient les
fonctions nécessaires. Ces fonctions récupèrent
l'information provenant des arguments, exécutent la commande SQL en
utilisant l'interface libpq et placent le résultat dans
les arguments spécifiés pour la sortie. Pour lier un programme
SQL embarqué, vous devez donc inclure la bibliothèque
libecpg :
cc -o monprog prog.o -lecpg
Dit autrement, on peut avoir besoin d'ajouter une option comme
- L/usr/local/pgsql/lib sur la ligne de commande.
|