ecpg — pré-processador C para SQL incorporado
ecpg [opção...] arquivo...
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.
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.
-iO 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_indicatorNão devem ser usados indicadores, mas sim valores especiais para representar valores nulos. Historicamente, existem bancos de dados que usam esta abordagem.
prepareTodas 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.
questionmarksPermite 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.
-vMostra informações adicionais, incluindo a versão e o caminho de “include”.
--versionMostra a versão do utilitário ecpg, e termina.
-?--helpMostra a ajuda sobre os argumentos da linha de comando do utilitário ecpg, e termina.
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.
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