| Postgre토토 9.1.24 문서 | ||||
|---|---|---|---|---|
| PostgreSQL : 문서 : 9.1 : 토토 결과 처리 | 토토 : 문서 : 9.1 : ECPG- C에 포함 된 SQL | 33장.ECPG- 임베디드토토C에서 | 다음 | |
방법을 수정하는 여러 전처리기 지시문을 사용할 수 있습니다.ecpg전처리기가 구문 분석하고 파일을 처리합니다.
Embedded 토토 프로그램에 외부 파일을 포함하려면, 사용:
EXEC 토토 포함파일 이름; EXEC 토토 포함 <파일 이름; EXEC 토토에는 "이 포함됩니다.파일 이름";
Embedded 토토 전처리기는 다음 이름의 파일을 찾습니다.파일 이름.h, 전처리하고 결과 C 출력에 포함합니다. 따라서 임베디드 토토은 포함된 파일의 명령문이 올바르게 처리됩니다.
그ecpg전처리기가 다음을 검색합니다. 다음 순서로 여러 디렉터리에 파일을 저장합니다.
현재 디렉토리
/usr/local/include
Postgre토토 포함 디렉토리, 빌드 시 정의됨 (예:/usr/local/pg토토/include)
/usr/include
그러나 언제EXEC 토토 INCLUDE "파일 이름"이 사용됩니다. 현재 디렉토리가 검색됩니다.
각 디렉토리에서 전처리기는 먼저 다음을 찾습니다. 파일 이름은 주어진 대로이며, 찾을 수 없으면 추가됩니다..h파일 이름으로 변경하고 다시 시도하십시오( 지정된 파일 이름에 이미 해당 접미사가 있습니다).
참고EXEC 토토 포함이다아님동일:
#include <파일 이름.h
이 파일은 토토 명령의 적용을 받지 않기 때문입니다 전처리. 당연히 C를 계속 사용할 수 있습니다.#include다른 항목을 포함하는 지시어 헤더 파일.
참고:포함 파일 이름은 대소문자를 구분합니다. 비록 나머지는EXEC 토토 포함명령은 일반 토토을 따릅니다. 대소문자 구분 규칙.
지시문과 유사#정의C에서 알려진 Embedded 토토에도 비슷한 개념이 있습니다.
EXEC 토토 정의이름; EXEC 토토 정의이름 값;
그래서 당신은 이름을 정의할 수 있습니다:
EXEC 토토 DEFINE HAVE_FEATURE;
그리고 상수를 정의할 수도 있습니다:
EXEC 토토 정의 내 번호 12; EXEC 토토 정의 MYSTRING 'abc';
사용undef이전 항목을 제거하려면 정의:
EXEC 토토 UNDEF MYNUMBER;
물론 C 버전을 계속 사용할 수 있습니다.#정의그리고#undef에 Embedded 토토 프로그램. 차이점은 정의한 위치입니다. 값이 평가됩니다. 사용하는 경우EXEC 토토 정의그러면ecpg전처리기 정의를 평가하고 값을 대체합니다. 예를 들어 다음과 같이 쓴다면:
EXEC 토토 정의 내 번호 12; ... EXEC 토토 업데이트 Tbl SET col = MYNUMBER;
그러면ecpg이미 할 것입니다 대체하면 C 컴파일러는 어떤 이름이나 이름도 볼 수 없습니다. 식별자마이넘버. 당신은 사용할 수 없습니다#정의상수에 대해 내장 토토 쿼리에 사용할 예정입니다. Embedded 토토 프리컴파일러가 이를 볼 수 없는 경우 선언.
다음 지시문을 사용하여 코드를 컴파일할 수 있습니다 섹션을 조건부로:
확인 a이름그리고 다음과 같은 경우 후속 라인을 처리합니다.이름다음으로 생성됨EXEC 토토 정의이름.
a를 확인합니다이름그리고 다음과 같은 경우 후속 라인을 처리합니다.이름있음아님다음으로 생성됨EXEC 토토 정의이름.
섹션에 대한 대체 섹션 처리 시작 둘 중 하나에 의해 소개됨EXEC 토토 ifdef이름또는EXEC 토토 ifndef이름.
체크이름그리고 시작 다음의 경우 대체 섹션이름다음으로 생성되었습니다EXEC 토토 정의이름.
대체 섹션을 종료합니다.
예:
EXEC 토토 ifndef TZVAR; EXEC 토토은 시간대를 'GMT'로 설정합니다. EXEC 토토 elif TZNAME; EXEC 토토은 시간대를 TZNAME으로 설정합니다. EXEC 토토 기타; EXEC 토토은 시간대를 TZVAR로 설정합니다. EXEC 토토 endif;