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

개발자

이 섹션은 개발을 원하는 사람들을위한 것입니다ECPG인터페이스. 그것은 어떻게 사물을 설명합니다 일하다. 야심은이 섹션에 그들을 위해 물건을 포함시키는 것입니다. 내부를 살펴보고 그것을 사용하는 방법에 대한 섹션을 원합니다. 모든 정상적인 질문에 충분해야합니다. 그래서, 이것을 전에 읽으십시오 내부를보고ECPG. 당신이 그것이 어떻게 관심이 없다면 정말 작동합니다.이 섹션을 건너 뛰십시오.

TODO 목록

이 버전에 전처리기에는 약간의 결함이 있습니다.

문자열에 대한 제한 없음

PQ 인터페이스 및 대부분의 PQEXEC 함수의 대부분 에 의해 사용됩니다.ECPG의존합니다 요청이 문자열로 구축되었습니다. 어떤 경우에는 같은 경우 데이터에 null 문자가 포함되면 심각한 문제.

오류 코드

다른 오류 번호가 다른 오류 번호가 있어야합니다 그들 모두에게 -1 대신 오류.

라이브러리 기능

To_date et al.

레코드

기록 또는 구조는 선언에 정의되어야합니다. 부분.

누락 된 진술

다음 진술은 지금까지 구현되지 않았습니다.

Exec 토토 결과 유형
Exec 토토 결과 준비
Exec 토토 결과 할당
Exec 토토 결과 Free
토토 결과WARNING있을 때마다 EXEC 토토 결과
토토 결과state
메시지 'No Data'

EXEC 토토 결과 삽입 SELEC의 "데이터 없음"오류 메시지 진술에서 100이어야합니다.

토토 결과WANR [6]

토토 결과warn [6]은 정밀 또는 스케일 값이라면 'w'여야합니다. 세트 설명 자 명령문에 지정된 것은 무시됩니다.

스크립트 변환

데이터베이스를 설정하려면 테이블이있는 스크립트가 필요합니다. 정의 및 기타 구성 매개 변수. 당신이 있다면 적용하고 싶은 이전 데이터베이스에 대한 이러한 스크립트 그들을 얻기 위해Postgres같은 방식으로 작동하는 데이터베이스.

데이터베이스를 설정하려면 테이블이있는 스크립트가 필요합니다. 정의와 기능은 달성 될 수 있습니다 일부 변환 스크립트. 속도는 결코 달성되지 않습니다 이런 식으로. 이를 위해서는 데이터베이스에 더 큰 통찰력이 필요합니다. 실현 될 수있는 것보다 구조 및 데이터베이스 사용 대본에서.

전처리

첫 4 줄은 출력에 기록됩니다. 두 개의 의견과 두 개 라이브러리 인터페이스에 필요한 줄 포함.

그런 다음 사전 처리기는 입력을 읽는 것만 한 패스로 작동합니다. 파일을 파일하고 출력이 진행될 때 쓰기. 일반적으로 그것은 단지입니다 더 보지 않고 모든 것을 출력에 반향합니다.

Exec 토토 결과진술 그것은 IIT에 따라 개입하고 변경합니다. 그만큼Exec 토토 결과진술은 다음 중 하나 일 수 있습니다 :

섹션 선언

선언 섹션이 시작됩니다

Exec 토토 결과 시작 선언 섹션;
Exec 토토 결과 End Declare 섹션;
섹션에서는 변수 선언 만 허용됩니다. 모든 이 섹션 내에서 변수 선언은 또한 목록에 입력됩니다. 변수는 해당 이름과 함께 이름으로 색인되었습니다 유형.

선언은 변수를 만들기 위해 파일에 반향됩니다. 정상적인 c- 변수.

특수 유형 varchar 및 varchar2는 모든 변수에 대한 구조물로 명명되었습니다. 다음과 같은 선언 :

Varchar var [180];
로 변환
Struct varchar_var int len; char arr [180];  var;
진술 포함

include 진술은 다음과 같습니다.

exec 토토 결과 포함 파일 이름;
그것은로 변환되었습니다
#include <filename.h
Connect 문

연결 문은 다음과 같습니다.

Exec 토토 결과 Connect '데이터베이스';
그 진술은로 변환됩니다.
ecpgconnect ( "데이터베이스");
오픈 커서 문

열린 커서 문은 다음과 같습니다.

Exec 토토 결과 Open커서;
그리고 출력에서 ​​무시하고 복사하지 않습니다.
커밋 진술

커밋 진술은

Exec 토토 결과 Commit;
그리고 출력에서 ​​번역
ecpgcommit (__ line__);
롤백 문

롤백 문장은

Exec 토토 결과 롤백;
출력에서로 번역됩니다.
ecpgrollback (__ line__);
기타 진술

기타토토 결과진술은 다른 것입니다 시작하는 진술Exec 토토 결과및 끝로 끝납니다.;. 그 사이의 모든 것 로 취급토토 결과진술 및 가변 대체를 위해 구문 분석.

기호가 a로 시작할 때 가변 대체가 발생합니다 결장 (:). 그런 다음 변수입니다 이름은 이전에 선언 된 변수 중에서 발견됩니다. 선언 섹션 내에서 그리고에 따라토토 결과진술은 그것이 a라는 것을 알고 있습니다 입력에 대한 변수 또는 출력 변수에 대한 포인터가 함수에 의한 액세스를 허용하기 위해 출력에 작성되었습니다.

|토토 결과함수가 또 다른 5 개를받습니다 인수 :

특수 기호로 유형
값에 대한 포인터
변수가 varchar 인 경우 변수의 크기
배열의 요소 수 (배열의 경우 가져 오기)
배열의 다음 요소로의 오프셋 (배열 용. 가져 오기)

배열 가져 오기는 아직 구현되지 않았으므로 마지막 두 가지가 있습니다. 논쟁은 실제로 중요하지 않습니다. 그들은 아마도 가질 수 있습니다 제외되었습니다.

완료 예

다음은 다음의 출력을 설명하는 완전한 예입니다. 전처리 자 :

Exec 토토 결과 시작 선언 섹션;
int index;
int 결과;
Exec 토토 결과 END DELLARE SECTION;
...
    exec sql res를 선택하십시오 : mytable에서 결과적으로 index = : index;
:로 번역됩니다.
/ *이 두 포함 파일은 사전 처리기에 의해 추가됩니다 */
#include <ecpgtype.h
#include <ecpglib.h
/ * EXEC 토토 결과 시작 선언 섹션 */

 int index;
 int 결과;
/ * EXEC 토토 결과 종료 선언 섹션 */

...
    ecpgdo (__ line__, "index = ;;"에서 mytable에서 res를 선택하십시오. 
           ecpgt_int, & index, 0,0, sizeof (int), 
           ECPGT_EOIT, 
           ecpgt_int, & result, 0,0, sizeof (int), 
           ecpgt_eort);
(이 매뉴얼의 들여 쓰기는 가독성과 전처리자가 할 수있는 일이 아닙니다.)

도서관

라이브러리에서 가장 중요한 기능은입니다.ecpgdo함수. 가변 금액이 필요합니다 논쟁. 바라건대 우리는 바르 르 차 함수로 받아 들일 수있는 변수의 양. 이것은 최대 50 정도의 논쟁을 쉽게 추가 할 수 있습니다.

인수는 다음과 같습니다.

줄 번호

오류에 사용 된 원래 줄의 줄 번호입니다. 메시지 만.

문자열

이것이토토 결과그 요청 발행. 이 요청은 입력 변수에 의해 수정됩니다. 즉, 컴파일 시간에 알려지지 않았지만 요청에 입력해야합니다. 변수가 가야 할 곳 문자열에는 ";".이 포함됩니다.

입력 변수

모든 사전 처리기에 대한 섹션에 설명 된대로 입력 변수는 5 개의 인수를 가져옵니다.

ecpgt_eoit

더 이상 입력 변수가 없다고 말하는 열거.

출력 변수

모든 사전 처리기에 대한 섹션에 설명 된대로 입력 변수는 5 개의 인수를 가져옵니다. 이 변수는 채워집니다 함수에 의해.

ecpgt_eort

더 이상 변수가 없다고 말하는 열거.

모든토토 결과진술은입니다 커밋 거래를 발행하지 않는 한 한 번의 거래에서 수행됩니다. 이것은 첫 번째 트랜잭션 또는 첫 번째 트랜잭션이 커밋 또는 롤백은 항상 거래를 시작합니다.

완료 될 : 다른 항목을 설명하는 항목.