개발 버전 :Devel
지원되지 않은 버전 :12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

34.17. 내부#

이 섹션은 방법을 설명합니다ECPG내부적으로 작동합니다. 이 정보는 때때로 사용자가 사용 방법을 이해하는 데 도움이 될 수 있습니다ECPG.

처음 4 줄ECPG출력은 고정 라인입니다. 두 개는 주석이며 2 개는 라이브러리 인터페이스에 필요한 줄이 포함되어 있습니다.

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

가변 대체는 기호가 결장으로 시작할 때 발생합니다 (:). 해당 이름의 변수는 이전에 a 내에서 선언 된 변수들 사이에서 위로 올라갑니다.Exec SQL 선언섹션.

라이브러리에서 가장 중요한 기능은입니다.ecpgdo, 대부분의 명령을 실행하는 것을 관리합니다. 가변적인 수의 인수가 필요합니다.

인수는 다음과 같습니다.

줄 번호 #

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

문자열 #

이것이SQL발행 될 명령. 입력 변수, 즉 컴파일 시간에 알려지지 않았지만 명령에 입력 해야하는 변수에 의해 수정됩니다.?.

입력 변수 #

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

ecpgt_eoit #

anenum더 이상 입력 변수가 없다고 말합니다.

출력 변수 #

모든 출력 변수로 인해 10 개의 인수가 생성됩니다. (아래 참조)이 변수는 함수에 의해 채워집니다.

ecpgt_eort #

anenum더 이상 변수가 없다고 말합니다.

의 일부인 모든 변수에 대해SQL명령, 함수는 10 개의 인수를 가져옵니다 :

  1. 특수 기호로 유형.

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

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

  4. 배열의 요소 수 (배열 페치 용).

  5. 배열의 다음 요소로의 오프셋 (배열 페치 용).

  6. 특수 기호로 표시기 변수의 유형.

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

  8. 0

  9. 표시기 배열의 요소 수 (배열 페치 용).

  10. 표시기 배열의 다음 요소로의 오프셋 (배열 페치 용).

모든 SQL 명령이 이러한 방식으로 처리되는 것은 아닙니다. 예를 들어 :과 같은 열린 커서 문화

Exec SQL Open커서;

는 출력에 복사되지 않습니다. 대신, 커서의선언명령은의 위치에서 사용됩니다.Open실제로 커서를 열기 때문에 명령.

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

Exec SQL 시작 선언 섹션;

:로 번역됩니다.

/ * ECPG에 의해 처리 됨 (2.6.0) */

14782_14870

정정 제출

올바른 문서에 아무것도 표시되면 일치하지 않습니다.이 양식문서 문제를보고하려면