PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 13.17 » Référence » Applications client de PostgreSQL » ecpg

ecpg

ecpg — Préprocesseur C pour le SQL embarqué

Synopsis

ecpg [option...] fichier...

Description

ecpg est le préprocesseur du SQL embarqué pour les programmes écrits en C. Il convertit des programmes écrits en C contenant des instructions SQL embarqué en code C normal. Pour se faire, les appels au SQL sont remplacés par des appels spéciaux de fonctions. Les fichiers en sortie peuvent être traités par n'importe quel compilateur C.

ecpg convertit chaque fichier en entrée, donné sur la ligne de commande, en un fichier C correspondant. Si le nom d'un fichier en entrée n'a pas d'extension, .pgc est supposé. L'extension du fichier sera remplacée par .c pour construire le nom du fichier en sortie. Mais ce nom peut aussi être surchargé en utilisant l'option -o.

Si un nom de fichier en entrée est simplement -, ecpg lit le source du programme à partir de l'entrée standard (et écrit sur la sortie standard, sauf si ce comportement est surchargé avec l'option -o).

Cette page de référence ne décrit pas le langage SQL embarqué. Voir Chapitre 35 pour plus d'informations sur ce thème.

Options

ecpg accepte les arguments suivants en ligne de commande :

-c

Engendre automatiquement du code C à partir de code SQL. Actuellement, cela fonctionne pour EXEC SQL TYPE.

-C mode

Initialise un mode de compatibilité. mode peut être INFORMIX, INFORMIX_SE ou ORACLE.

-D symbole[=valeur]

Définit un symbole du préprocesseur, tout comme la directive EXEC SQL DEFINE directive. Si aucune valeur n'a été indiqué, le symbole est défini avec la valeur 1.

-h

Traite les fichiers d'en-tête. Quand cette option est utilisée, l'extension du fichier en sortie devient .h, et non pas .c, et l'extension par défaut du fichier en entrée est .pgh, et non pas .pgc. De plus, l'option -c est forcée.

-i

Les fichiers d'en-tête du système sont également analysés.

-I répertoire

Spécifie un chemin d'inclusion supplémentaire, utilisé pour trouver les fichiers inclus via EXEC SQL INCLUDE. Par défaut, il s'agit de . (répertoire courant), /usr/local/include, du répertoire de fichiers entêtes de PostgreSQL défini à la compilation (par défaut : /usr/local/pgsql/include), puis de /usr/include, dans cet ordre.

-o nom_fichier

Indique le nom du fichier de sortie, nom_fichier, utilisé par ecpg. Écrire -o - pour envoyer toute la sortie sur la sortie standard.

-r option

Sélectionne un comportement en exécution. option peut avoir une des valeurs suivantes :

no_indicator

Ne pas utiliser d'indicateurs mais utiliser à la place des valeurs spéciales pour représenter les valeurs NULL. Historiquement, certaines bases de données utilisent cette approche.

prepare

Préparer toutes les instructions avant de les utiliser. Libecpg conservera un cache d'instructions préparées et réutilisera une instruction si elle est de nouveau exécutée. Si le cache est plein, libecpg libérera l'instruction la moins utilisée.

questionmarks

Autoriser les points d'interrogation comme marqueur pour des raisons de compatibilité. C'était la valeur par défaut il y a longtemps.

-t

Active la validation automatique (autocommit) des transactions. Dans ce mode, chaque commande SQL est validée automatiquement, sauf si elle est à l'intérieur d'un bloc de transaction explicite. Dans le mode par défaut, les commandes ne sont validées qu'à l'exécution de EXEC SQL COMMIT.

-v

Affiche des informations supplémentaires dont la version et le chemin des entêtes.

--version

Affiche la version de ecpg et quitte.

-?
--help

Affiche l'aide sur les arguments en ligne de commande de ecpg et quitte.

Notes

Lors de la compilation de fichiers C prétraités, le compilateur a besoin de trouver les fichiers d'en-tête ECPG dans le répertoire des entêtes de PostgreSQL. De ce fait, il faut généralement utiliser l'option -I lors de l'appel du compilateur (c'est-à-dire -I/usr/local/pgsql/include).

Les programmes C qui utilisent du SQL embarqué doivent être liés avec la bibliothèque libecpg. Cela peut peut être effectué, par exemple, en utilisant les options de l'éditeur de liens -L/usr/local/pgsql/lib -lecpg.

La valeur réelle des répertoires, fonction de l'installation, peut être obtenue par l'utilisation de la commande pg_config.

Exemples

Soit un fichier source C contenant du SQL embarqué nommé prog1.pgc. Il peut être transformé en programme exécutable à l'aide des commandes suivantes :

ecpg prog1.pgc
cc -I/usr/local/pgsql/include -c prog1.c
cc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg