ecpg

ecpg — pré-processador C para SQL incorporado

Sinopse

ecpg [opção...] arquivo...

Descrição

O utilitário ecpg é o pré-processador de SQL incorporado para programas escritos na linguagem C. Ele converte programas escritos na linguagem C com instruções SQL incorporadas em código C normal, substituindo as instruções SQL por chamadas de funções especiais. Os arquivos de saída podem então ser processados com qualquer cadeia de ferramentas do compilador C.

O utilitário ecpg irá converter cada arquivo de entrada fornecido na linha de comando para o arquivo de saída C correspondente. Se o nome do arquivo de entrada não tiver nenhuma extensão, será assumido .pgc. A extensão do arquivo será substituída por .c para construir o nome do arquivo de saída. Mas o nome do arquivo de saída pode ser mudado usando a opção -o.

Se o nome do arquivo de entrada for apenas -, o utilitário ecpg irá ler o programa na entrada padrão (e escrever na saída padrão, a menos que seja mudado pela opção -o).

Esta página de referência não descreve a linguagem SQL incorporada. Veja ECPG — Embedded SQL in C para obter mais informações sobre este assunto.

Opções

O utilitário ecpg aceita os seguintes argumentos de linha de comando:

-c

Gera automaticamente código C a partir do código SQL. No momento, funciona para EXEC SQL TYPE.

-C modo

Define o modo de compatibilidade. O modo pode ser INFORMIX, INFORMIX_SE, ou ORACLE.

-D símbolo[=valor]

Define um símbolo do pré-processador, equivalente à diretiva EXEC SQL DEFINE. Se não for especificado nenhum valor, o símbolo será definido com o valor 1.

-h

Processa arquivos de cabeçalho. Quando é especificada esta opção, a extensão do arquivo de saída torna-se .h, e não .c, e a extensão padrão do arquivo de entrada torna-se .pgh, e não .pgc. Além disso, é forçada a opção -c.

-i

O sistema de análise também inclui arquivos.

-I diretório

Especifica um caminho de inclusão adicional, usado para localizar arquivos incluídos por meio de EXEC SQL INCLUDE. O padrão é . (o diretório corrente), /usr/local/include, o diretório include do PostgreSQL definido em tempo de compilação (padrão: /usr/local/pgsql/include), e /usr/include, nesta ordem.

-o nome_do_arquivo

Especifica que o utilitário ecpg deve escrever toda a sua saída no arquivo nome_do_arquivo indicado. Pode ser escrito -o - para enviar toda a saída para a saída padrão.

-r opção

Seleciona o comportamento em tempo de execução. A opção pode ser uma das seguintes:

no_indicator

Não devem ser usados indicadores, mas sim valores especiais para representar valores nulos. Historicamente, existem bancos de dados que usam esta abordagem.

prepare

Todas as instruções devem ser preparadas antes de serem usadas. A libecpg irá manter um cache de instruções preparadas, reutilizando a instrução se esta for executada novamente. Se o cache ficar cheio, a libecpg irá liberar a instrução menos usada.

questionmarks

Permite o uso do ponto de interrogação como espaço reservado, por motivos de compatibilidade. Isto costumava ser o padrão há muito tempo atrás.

-t

Ativa a efetivação automática (autocommit) das transações. Neste modo, cada comando SQL é efetivado automaticamente, a menos que esteja em um bloco de transação explícito. No modo padrão, os comandos são efetivados somente quando é executado EXEC SQL COMMIT.

-v

Mostra informações adicionais, incluindo a versão e o caminho de include.

--version

Mostra a versão do utilitário ecpg, e termina.

-?
--help

Mostra a ajuda sobre os argumentos da linha de comando do utilitário ecpg, e termina.

Notas

Ao compilar os arquivos de código C pré-processados, o compilador precisa ser capaz de encontrar os arquivos de cabeçalho ECPG no diretório de inclusão do PostgreSQL. Portanto, pode ser necessário usar a opção -I ao chamar o compilador (por exemplo, -I/usr/local/pgsql/include).

Os programas que usam código C com SQL incorporado devem ser vinculados à biblioteca libecpg, por exemplo, usando as opções do vinculador -L/usr/local/pgsql/lib -lecpg.

O valor apropriado de qualquer um desses diretórios, dependentes da instalação, pode ser obtido usando o utilitário pg_config.

Exemplo

Havendo um arquivo-fonte C com SQL incorporado chamado prog1.pgc, poderá ser criado o programa executável usando a seguinte sequência 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