ecpg

ecpg — preprocesador de SQL embebido para C

Synopsis

ecpg [opción...] archivo...

Descripción

ecpg es el preprocesador de SQL embebido para programas en C. Convierte programas en C con sentencias SQL embebidas en código C normal al reemplazar las invocaciones SQL por llamadas a funciones especiales. Los archivos de salida pueden entonces ser procesados con cualquier cadena de herramientas de compilación de C.

ecpg convertirá cada archivo de entrada proporcionado en la línea de comandos en el archivo de salida C correspondiente. Si el nombre de un archivo de entrada no tiene ninguna extensión, se asume .pgc. La extensión del archivo se reemplazará por .c para construir el nombre del archivo de salida. Pero el nombre del archivo de salida se puede cambiar usando la opción -o.

Si el nombre de un archivo de entrada es simplemente -, ecpg lee el programa desde la entrada estándar (y escribe en la salida estándar, a menos que eso se cambie con -o).

Esta página de referencia no describe el lenguaje SQL embebido. Consulta la Chapter 34 para obtener más información sobre ese tema.

Opciones

ecpg acepta los siguientes argumentos de línea de comandos:

-c

Genera automáticamente cierto código C a partir de código SQL. Actualmente, esto funciona para EXEC SQL TYPE.

-C modo

Establece un modo de compatibilidad. modo puede ser INFORMIX, INFORMIX_SE, u ORACLE.

-D símbolo[=valor]

Define un símbolo del preprocesador, de manera equivalente a la directiva EXEC SQL DEFINE. Si no se especifica ningún valor, el símbolo se define con el valor 1.

-h

Procesa archivos de cabecera. Cuando se especifica esta opción, la extensión del archivo de salida pasa a ser .h en lugar de .c, y la extensión del archivo de entrada por omisión es .pgh en lugar de .pgc. Además, se fuerza la activación de la opción -c.

-i

Analiza también los archivos de inclusión del sistema.

-I directorio

Especifica una ruta de inclusión adicional, utilizada para buscar archivos incluidos a través de EXEC SQL INCLUDE. Los valores por omisión son . (directorio actual), /usr/local/include, el directorio de inclusión de PostgreSQL que se define en el momento de la compilación (por omisión: /usr/local/pgsql/include), y /usr/include, en ese orden.

-o nombre-de-archivo

Especifica que ecpg debe escribir toda su salida en el nombre-de-archivo dado. Escribe -o - para enviar toda la salida a la salida estándar.

-r opción

Selecciona el comportamiento en tiempo de ejecución. opción puede ser uno de los siguientes:

no_indicator

No utilices indicadores sino valores especiales para representar valores nulos. Históricamente ha habido bases de datos que utilizaban este enfoque.

prepare

Prepara todas las sentencias antes de usarlas. Libecpg mantendrá una caché de sentencias preparadas y reutilizará una sentencia si se ejecuta de nuevo. Si la caché se llena, libecpg liberará la sentencia menos utilizada.

questionmarks

Permite el signo de interrogación como marcador de posición por razones de compatibilidad. Esto solía ser el comportamiento por omisión hace mucho tiempo.

-t

Activa la confirmación automática (autocommit) de las transacciones. En este modo, cada comando SQL es confirmado automáticamente a menos que esté dentro de un bloque de transacción explícito. En el modo por omisión, los comandos se confirman únicamente cuando se ejecuta EXEC SQL COMMIT.

-v

Muestra información adicional, incluyendo la versión y la ruta de «inclusión» («include»).

--version

Muestra la versión de ecpg y sale.

-?
--help

Muestra la ayuda sobre los argumentos de línea de comandos de ecpg y sale.

Notas

Al compilar los archivos de código C preprocesados, el compilador debe ser capaz de encontrar los archivos de cabecera de ECPG en el directorio de inclusión de PostgreSQL. Por lo tanto, es posible que tengas que usar la opción -I al invocar el compilador (por ejemplo, -I/usr/local/pgsql/include).

Los programas que utilizan código C con SQL embebido deben enlazarse con la biblioteca libecpg, por ejemplo, utilizando las opciones del enlazador -L/usr/local/pgsql/lib -lecpg.

El valor de cualquiera de estos directorios que sea apropiado para la instalación se puede averiguar utilizando la pg_config.

Ejemplos

Si tienes un archivo fuente de C con SQL embebido llamado prog1.pgc, puedes crear un programa ejecutable utilizando la siguiente secuencia de comandos:

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