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

30.13. 내부

This section explain howECPG내부적으로 작동합니다. 이 정보는 때때로 유용 할 수 있습니다 사용자가 사용 방법을 이해하도록 돕습니다ECPG.

처음 4 줄ECPG출력은 고정 라인입니다. 두 개는 의견이며 두 개는입니다 라이브러리 인터페이스에 필요한 줄을 포함하십시오. 그럼 사전 처리기는 파일을 읽고 출력을 씁니다. 보통 그것은 단지 모든 것을 출력에 반향합니다.

Exec 토토 사이트 순위진술, 개입하고 변경합니다. 명령은로 시작합니다.Exec 토토 사이트 순위;. 그 사이의 모든 것은로 취급됩니다.토토 사이트 순위진술 및 변수에 대한 구문 분석 치환.

가변 치환은 기호가 결장으로 시작할 때 발생합니다. (:). 해당 이름의 변수는입니다 이전에 선언 된 변수 중에서 찾았습니다 A 내에서Exec 토토 사이트 순위 선언섹션.

라이브러리에서 가장 중요한 기능은입니다.ecpgdo명령. 가변적인 수의 인수가 필요합니다. 이것은 할 수 있습니다 쉽게 50 정도의 논쟁을 추가하면 이것이 그렇지 않기를 바랍니다. 모든 플랫폼의 문제.

인수는 다음과 같습니다.

줄 번호

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

문자열

이것은입니다.토토 사이트 순위발행 될 명령. 입력에 의해 수정됩니다 변수, 즉 알지 못하는 변수 시간을 컴파일하지만 명령에 입력해야합니다. 어디 변수는 문자열이 포함되어야합니다?.

입력 변수

모든 입력 변수로 인해 10 개의 인수가 생성됩니다. (아래 참조)

ecpgt_eoit

anenum더 많은 입력 변수.

출력 변수

모든 출력 변수로 인해 10 개의 인수가 발생합니다 생성. (아래 참조)이 변수는 다음으로 채워집니다 기능.

ecpgt_eort

anenum더 많은 변수.

의 일부인 모든 변수에 대해토토 사이트 순위명령, 함수는 10을 얻습니다 인수 :

  1. 특수 기호로 유형.

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

  3. 변수가 a의 크기입니다.char또는Varchar.

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

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

  6. 특별한 지표 변수의 유형 상징.

  7. 지표 변수에 대한 포인터

  8. 0

  9. 표시기 배열의 요소 수 (배열의 경우 가져 오기).

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

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

Exec 토토 사이트 순위 Open커서;

는 출력에 복사되지 않습니다. 대신, 커서의선언명령은의 위치에서 사용됩니다.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"

(여기서의 인기는 가독성을 위해 추가됩니다 전처리자가하는 일.)