이 문서는 지원되지 않는 버전의 Postgre토토 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다토토 캔 : 문서 : 17 : 34.17. 토토 캔버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

4.11. 토토 위해

이 섹션을 설명하는 방법ecpg내부적으로 작동합니다. 이 정보는 때때로 유용 할 수 있습니다 사용자가 사용 방법을 이해하도록 돕습니다ECPG.

4.11.1. 그만큼 전처리

처음 4 줄에 의해 작성되었습니다ECPG출력은 고정 라인입니다. 둘은 주석과 두 가지는 인터페이스하는 데 필요한 줄이 포함되어 있습니다. 도서관. 그런 다음 전처리 기는 파일을 통해 읽습니다 출력을 씁니다. 일반적으로 그것은 단지 모든 것을 반향합니다 산출.

그것이 볼 때Exec 토토진술, 개입하고 변경합니다. 명령은로 시작합니다.Exec 토토;. 그 사이의 모든 것은로 취급됩니다.토토진술 및 구문 분석 가변 대체.

가변 치환은 기호가 a로 시작할 때 발생합니다 결장 (:). 그 이름을 가진 변수 이전에 선언 된 변수 중에서 찾아 보았습니다. A 내에서Exec 토토 선언섹션. 토토가 입력에 사용되는지 여부에 따라 출력, 토토에 대한 포인터는 액세스를 허용하는 출력입니다. 함수.

의 일부인 모든 토토에 대해토토쿼리, 함수는 다른 기능을 얻습니다 인수 :

  • 특수 기호로 유형.

  • 값에 대한 포인터 또는 포인터에 대한 포인터.

  • 토토가 a의 크기입니다.char또는varchar.

  • 배열의 요소 수 (배열의 경우 가져 오기).

  • 배열의 다음 요소로의 오프셋 (배열 용. 가져 오기).

  • 특별한 지표 토토의 유형 상징.

  • 지표 변수 또는 a의 값에 대한 포인터 지표 변수의 포인터에 대한 포인터.

  • 0

  • 표시기 배열의 요소 수 (배열 가져 오기).

  • 표시기 배열의 다음 요소로의 오프셋 (배열 가져 오기).

모든 토토 명령이 이러한 방식으로 처리되는 것은 아닙니다. 을 위한 인스턴스, 개방형 커서 문과 같은

Exec 토토 Open커서;

는 출력에 복사되지 않습니다. 대신, 커서의선언명령이 사용되기 때문에 사용됩니다 커서도 엽니 다.

다음은 다음의 출력을 설명하는 완전한 예입니다. 파일의 전처리foo.pgc(세부 사항은 각각의 특정 버전에서 변경 될 수 있습니다 사전 처리기) :

Exec 토토 시작 선언 섹션;
int index;
int 결과;
Exec 토토 END DELLARE SECTION;
...
exec sql res를 선택하십시오 : mytable에서 결과적으로 index = : index;

로 번역됩니다 :

/ * ECPG에 의해 처리 됨 (2.6.0) */
/ *이 두 포함 파일은 사전 처리기에 의해 추가됩니다 */
#include <ecpgtype.h;
#include <ecpglib.h;

/ * EXEC 토토 시작 선언 섹션 */

#line 1 "foo.pgc"

 int index;
 int 결과;
/ * EXEC 토토 종료 선언 섹션 */
...
ecpgdo (__ line__, null, "mytable에서 reS를 선택하여 index =?",
        ecpgt_int, & (인덱스), 1l, 1l, sizeof (int),
        ecpgt_no_indicator, null, 0l, 0l, 0l, ecpgt_eoit,
        ecpgt_int, & (결과), 1l, 1l, sizeof (int),
        ecpgt_no_indicator, null, 0l, 0l, 0l, ecpgt_eort);
#line 147 "foo.pgc"

(이 매뉴얼의 들여 쓰기는 가독성과 전처리자가하는 일이 아닙니다.)

4.11.2. 그만큼 도서관

라이브러리에서 가장 중요한 기능은입니다.ecpgdo. 가변 수의 수가 필요합니다 논쟁. 바라건대 제한하는 컴퓨터가 없기를 바랍니다 a에 의해 받아 들일 수있는 토토 수varargs ()함수. 이것은 쉽게 추가 할 수 있습니다 50 정도의 논쟁.

인수는 다음과 같습니다.

줄 번호

이것은 원래 줄의 줄 번호입니다. 사용 오류 메시지 만.

문자열

이것이토토발급 될 쿼리. 입력에 의해 수정됩니다 변수, 즉 알지 못하는 변수 시간을 컴파일하지만 쿼리에 입력해야합니다. 어디 변수는 문자열이 포함되어야합니다?.

입력 토토

사전 처리기에 관한 섹션에 설명 된대로, 모든 입력 토토는 10 개의 인수를 얻습니다.

ecpgt_eoit

anenum더 이상 입력 토토가 없습니다.

출력 토토

사전 처리기에 관한 섹션에 설명 된대로, 모든 입력 토토는 10 개의 인수를 얻습니다. 이 변수 함수에 의해 채워집니다.

ecpgt_eort

anenum더 이상 토토가 없습니다.