Documentation PostgreSQL 8.0.2 | ||||
---|---|---|---|---|
Précédent | Arrière rapide | Chapitre 29. ECPG - SQL embarqué dans du C | Avance rapide | Suivant |
Maintenant que vous avez une idée de la façon de former des programmes C incluant du SQL embarqué, vous voulez probablement savoir comment les compiler. Avant de compiler, vous passez le fichier au travers du préprocesseur C pour le SQL embarqué, qui convertit les instructions SQL que vous avez utilisées en appels de fonctions spéciales. Après compilation, vous devez lier le programme avec une bibliothèque spéciale contenant 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.
Le préprocesseur est appelé ecpg et est inclus dans une installation standard de PostgreSQL. Les programmes SQL embarqués sont nommés typiquement avec une extension .pgc. Si vous avez un fichier programme nommé prog1.pgc, vous pouvez le passer au préprocesseur par la simple commande
ecpg prog1.pgc
Ceci créera un fichier nommé prog1.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.
Le fichier traité par le préprocesseur peut être compilé normalement, par exemple :
cc -c prog1.c
Les fichiers sources en C générés incluent les fichiers d'en-tête provenant de l'installation de PostgreSQL, donc 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.
Pour lier un programme SQL embarqué, vous aurez besoin d'inclure la bibliothèque libecpg, de cette façon :
cc -o monprog prog1.o prog2.o ... -lecpg
De nouveau, vous pourriez avoir besoin d'ajouter une option comme -L/usr/local/pgsql/lib sur la ligne de commande.
Si vous gérez le processus de construction d'un grand projet en utilisant make, il pourrait être plus agréable d'inclure la règle implicite suivante dans vos fichiers makefile :
ECPG = ecpg %.c: %.pgc $(ECPG) $<
La syntaxe complète de la commande ecpg est détaillée dans ecpg.
La bibliothèque ecpg est compatible avec les threads si elle a été construite en utilisant l'option en ligne de commande --enable-thread-safety de configure. (Vous pourriez avoir besoin d'utiliser d'autres options de threading en ligne de commande pour compiler votre code client.)
Précédent | Sommaire | Suivant |
Inclure des fichiers | Niveau supérieur | Fonctions de la bibliothèque |