ecpg — 임베디드 SQL C 전처리기
ecpg
[옵션
...] 파일
...
ecpg
명령은 C 프로그램용 임베디드 SQL 전처리기다.
SQL 명령을 사용하는 C 프로그램을 이 전처리기가 해석할 수 있는
구문으로 소스 파일을 작성하고, 이 명령을 이용해서 C 컴파일러가 해석할
수 있는 소스 파일로 바꾼다.
ecpg
will convert each input file given on the
command line to the corresponding C output file. If an input file
name does not have any extension, .pgc
is
assumed. The file's extension will be replaced
by .c
to construct the output file name.
But the output file name can be overridden using the
-o
option.
If an input file name is just -
,
ecpg
reads the program from standard input
(and writes to standard output, unless that is overridden
with -o
).
여기서는 임베디드 SQL 언어에 대한 설명은 하지 않는다. 이 부분은 35장에서 자세히 다룬다.
ecpg
명령에서 사용할 수 있는 옵션은 다음과 같다:
-c
SQL 코드에서 특정 C 코드를 자동으로 만든다. 현재 이 옵션은
EXEC SQL TYPE
구문용이다.
-C 모드
호환 모드 지정. 모드
값으로
INFORMIX
, INFORMIX_SE
ORACLE
셋 중 하나를 지정할 수 있다.
-D 심볼
C 전처리에서 사용할 심볼 지정.
-h
Process header files. When this option is specified, the output file
extension becomes .h
not .c
,
and the default input file extension is .pgh
not .pgc
. Also, the -c
option is
forced on.
-i
Parse system include files as well.
-I 디렉터리
EXEC SQL INCLUDE
지정한 파일이 있는
디렉터리를 지정한다. 기본 값은 순서 대로, .
(현재 디렉터리), /usr/local/include
,
PostgreSQL 컴파일 할 때 지정한
인크루드 디렉터리 (기본값:
/usr/local/pgsql/include
),
/usr/include
디렉토리들이다.
-o 파일이름
ecpg
작업 출력물의 이름을
파일이름
으로 지정한다.
Write -o -
to send all output to standard output.
-r 옵션
실행 환경을 지정한다. 사용할 수 있는 옵션
은
다음 중 하나다:
no_indicator
Do not use indicators but instead use special values to represent null values. Historically there have been databases using this approach.
prepare
Prepare all statements before using them. Libecpg will keep a cache of prepared statements and reuse a statement if it gets executed again. If the cache runs full, libecpg will free the least used statement.
questionmarks
Allow question mark as placeholder for compatibility reasons. This used to be the default long ago.
-t
트랜잭션 자동 커밋 처리. 이 옵션을 사용하면,
SQL 명령은 명시적으로 트랜잭션 영역 안에 있다고 지정하지 않는 이상
자동으로 그 명령이 실행 되면 커밋 된다. 기본값은
EXEC SQL COMMIT
구문이 실행 될 때만
커밋 된다.
-v
버전과 "include" 경로를 포함한 부가 정보를 보여준다.
--version
ecpg 버전을 보여주고 마친다.
-?
--help
ecpg 명령행 옵션 도움말을 보여주고 마친다.
이 명령으로 전처리 작업이 완료된 C 코드 파일을 컴파일 하려면,
PostgreSQL include 디렉터리 안에 있는
ECPG 헤더 파일이 필요하다. 그래서,
C 컴파일 작업에서는 -I/usr/local/pgsql/include
옵션처럼
그 컴파일러 맞는 include 파일 경로 설정이 필요하다.
이렇게 컴파일 된 실행 파일은 libecpg
라이브러리를 필요로한다. 그래서, 링크 작업을 할 때는
-L/usr/local/pgsql/lib -lecpg
이와 비슷한
옵션이 추가적으로 필요하다. (동적으로 링크한다면,
LD_LIBRARY_PATH 또는 LD_RUN_PATH 설정이 필요할 수도 있다. - 옮긴이)
앞에서 설명한 각 경로들의 적당한 값을 찾는 방법은 pg_config 명령을 이용하면 된다.
prog1.pgc
이름으로 임베디드 SQL C
소스 파일을 작성했다면, 다음 작업 과정을 거쳐
실행파일을 만들 수 있다:
ecpg prog1.pgc cc -I/usr/local/pgsql/include -c prog1.c cc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg