Documentation PostgreSQL 9.5.25 > Référence > Applications client de PostgreSQL > ecpg | |
dropuser | pg_basebackup |
ecpg — Préprocesseur C pour le SQL embarqué
ecpg [option...] fichier...
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 contruire 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 33, ECPG SQL embarqué en C pour plus d'informations sur ce thème.
ecpg accepte les arguments suivants en ligne de commande :
Engendre automatiquement du code C à partir de code SQL. Actuellement, cela fonctionne pour EXEC SQL TYPE.
Initialise un mode de compatibilité. mode peut être INFORMIX ou INFORMIX_SE.
Définit un symbole du préprocesseur C.
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.
Les fichiers d'en-tête du système sont également analysés.
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.
Indique le nom du fichier de sortie, nom_fichier, utilisé par ecpg. Écrire -o - pour envoyer toute la sortie sur la sortie standard.
Sélectionne un comportement en exécution. option peut avoir une des valeurs suivantes :
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.
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.
Autoriser les points d'interrogation comme marqueur pour des raisons de compatibilité. C'était la valeur par défaut il y a longtemps.
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.
Affiche des informations supplémentaires dont la version et le chemin des entêtes.
Affiche la version de ecpg et quitte.
Affiche l'aide sur les arguments en ligne de commande de ecpg et quitte.
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(1).