이 문서는 지원되지 않는 Postgre범퍼카 토토 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

다음을 위해 개발자

이 섹션은 다음을 개발하려는 사람들을 위한 것입니다.ecpg인터페이스. 사물이 어떻게 되는지 설명합니다. 일. 야망은 이 섹션에 다음과 같은 내용을 포함시키는 것입니다. 내부와 사용 방법 섹션을 살펴보고 싶은 분 모든 일반적인 질문에는 충분합니다. 그러니 그 전에 이 글을 읽어보세요 내부를 살펴보는 중ecpg. 그것이 어떻게 이루어지는지 관심이 없다면 정말 효과가 있습니다. 이 섹션을 건너뛰세요.

할 일 목록

이 버전의 전처리기에는 몇 가지 결함이 있습니다.

라이브러리 기능

to_date 외. 존재하지 않습니다. 그런데 그때포스트그레좋은 변환 루틴이 있습니다 그 자체. 그러니 아마 이걸 놓치지 않을 거예요.

구조 및 조합

구조체와 공용체는 선언에서 정의되어야 합니다 섹션.

명세서 누락

다음 명령문은 지금까지 구현되지 않았습니다:

exec 범퍼카 토토 할당
exec 범퍼카 토토 할당 해제
범퍼카 토토STATE
'데이터를 찾을 수 없음' 메시지

Exec 범퍼카 토토 삽입 선택 시 "데이터 없음"에 대한 오류 메시지 from 문은 100이어야 합니다.

범퍼카 토토warn[6]

범퍼카 토토warn[6]은 PRECISION 또는 SCALE 값인 경우 'W'여야 합니다. SET DESCRIPTOR 문에 지정된 내용은 무시됩니다.

전처리기

출력에 기록된 처음 네 줄은 일정합니다. Ecpg에 의한 추가. 이것은 두 개의 주석과 두 개의 포함 줄입니다. 라이브러리 인터페이스에 필요합니다.

그런 다음 전처리기는 한 번만 작동하여 입력을 읽습니다. 파일을 작성하고 진행되는 대로 출력에 씁니다. 보통은 그냥 더 이상 살펴보지 않고 모든 것을 출력에 반영합니다.

에 관해서는EXEC 범퍼카 토토문장 그것은 그것이 무엇인지에 따라 개입하고 변화시킵니다.EXEC 범퍼카 토토문은 다음 중 하나일 수 있습니다:

섹션 선언

다음으로 시작하는 섹션 선언

exec 범퍼카 토토 선언 섹션 시작;
다음으로 끝남
exec 범퍼카 토토 end 선언 섹션;
이 섹션에서는 변수 선언만 허용됩니다. 매 이 섹션 내의 변수 선언은 목록에도 입력됩니다. 해당 변수와 함께 이름에 색인이 붙은 변수 유형.

특히 구조 또는 공용체의 정의는 또한 선언 섹션 안에 나열되어야 합니다. 그렇지 않으면ecpg이러한 유형을 처리할 수 없습니다 단순히 정의를 모르기 때문입니다.

선언은 파일에 반영되어 변수를 일반 C-변수도 마찬가지입니다.

특수 유형 VARCHAR 및 VARCHAR2는 모든 변수에 대해 구조체라는 이름을 붙였습니다. 다음과 같은 선언:

VARCHAR 변수[180];
다음으로 변환됩니다
struct varchar_var  int len; 문자 arr[180];  변수;
문 포함

include 문은 다음과 같습니다:

exec 범퍼카 토토 include 파일 이름;
이것은 다음과 같지 않음에 유의하십시오.
#include <파일 이름.h

대신 지정된 파일은 다음에 의해 분석됩니다.ecpg그 자체. 그래서 그 내용은 지정된 파일이 결과 C 코드에 포함됩니다. 이쪽으로 포함에 EXEC 범퍼카 토토 명령을 지정할 수 있습니다. 파일.

연결 문

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

exec 범퍼카 토토 연결 대상연결 대상;

지정된 데이터베이스에 대한 연결을 생성합니다.

연결 대상될 수 있습니다 다음과 같은 방법으로 지정됩니다:

DB 이름[@서버][:포트][as연결 이름][사용자사용자 이름]
tcp:postgre범퍼카 토토://서버[:포트][/db이름][as연결 이름][사용자사용자 이름]
unix:postgre범퍼카 토토://서버[:port][/dbname][as연결 이름][사용자사용자 이름]
문자변수[로연결 이름][사용자사용자 이름]
문자열[로연결 이름][사용자]
기본값
사용자

사용자 이름을 지정하는 방법도 다양합니다.

사용자 ID
사용자 ID/비밀번호
사용자 ID식별자비밀번호
사용자 ID사용 중비밀번호

마지막으로 사용자 ID와 비밀번호입니다. 각각은 상수일 수 있습니다. 텍스트, 문자 변수 또는 문자 문자열.

연결 해제 문

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

exec 범퍼카 토토 연결 해제 [연결 대상];

지정된 데이터베이스에 대한 연결을 닫습니다.

연결 대상될 수 있습니다 다음과 같은 방법으로 지정됩니다:

연결 이름
기본값
현재
모두
커서 문 열기

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

exec 범퍼카 토토 열기커서;

무시되며 출력에서 복사되지 않습니다.
커밋 문

커밋 문은 다음과 같습니다.

exec 범퍼카 토토 커밋;
그리고 출력에서 다음으로 번역됩니다.
ECPG커밋(__LINE__);
롤백 문

롤백 문은 다음과 같습니다

exec 범퍼카 토토 롤백;
그리고 출력에서 다음으로 번역됩니다.
ECPGrollback(__LINE__);
기타 진술

기타범퍼카 토토문이 기타입니다. 로 시작하는 진술exec 범퍼카 토토그리고 다음으로 끝남;. 그 사이의 모든 것은 로 처리됨범퍼카 토토문장 및 변수 대체를 위해 구문 분석되었습니다.

기호가 다음으로 시작하면 변수 대체가 발생합니다. 콜론(:). 그런 다음 그 변수 이전에 있던 변수 중에서 이름을 찾습니다. 선언 섹션 내에서 변수에 따라 선언됨 입력 또는 출력을 위한 변수에 대한 포인터는 다음과 같습니다. 함수에 의한 액세스를 허용하기 위해 출력에 기록됩니다.

다음의 일부인 모든 변수에 대해범퍼카 토토함수가 추가로 10개를 얻도록 요청합니다. 인수:

특수 기호로서의 유형.
값에 대한 포인터 또는 포인터.
문자인 경우 변수의 크기 또는 varchar.
배열의 요소 수(배열의 경우) 가져오기).
배열의 다음 요소에 대한 오프셋(배열의 경우) 가져오기)
특수 변수로서의 표시 변수 유형 기호.
표시 변수 값에 대한 포인터 또는 표시 변수의 포인터에 대한 포인터입니다.
0.
표시기 배열의 요소 수(배열의 경우) 가져오기).
표시 배열의 다음 요소에 대한 오프셋 (배열 가져오기용)

완료 예시

다음은 출력을 설명하는 완전한 예입니다. 파일 foo.pgc의 전처리기:

exec 범퍼카 토토 선언 섹션 시작;
정수 인덱스;
정수 결과;
exec 범퍼카 토토 end 선언 섹션;
...
exec 범퍼카 토토 select res into :result from mytable where index = :index;
다음으로 번역됩니다:
/* ecpg(2.6.0)에 의해 처리됨 */
/* 이 두 개의 포함 파일은 전처리기에 의해 추가됩니다 */
#include <ecpgtype.h;
#include <ecpglib.h;

/* exec 범퍼카 토토 선언 섹션 시작 */

#라인 1 "foo.pgc"

 정수 인덱스;
 정수 결과;
/* exec 범퍼카 토토 선언 섹션 끝 */
...
ECPGdo(__LINE__, NULL, "인덱스 = ?인 mytable에서 res를 선택하세요. ",
        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"
(이 설명서의 들여쓰기는 가독성을 위해 추가되었으며 전처리기가 할 수 있는 일이 아닙니다.)

도서관

라이브러리에서 가장 중요한 기능은ECPGdo함수. 다양한 양의 비용이 소요됩니다. 인수. 우리는 제한이 있는 기계를 만나지 않기를 바랍니다. vararg 함수가 허용할 수 있는 변수의 양. 이렇게 하면 최대 50개 정도의 인수를 쉽게 추가할 수 있습니다.

인수는 다음과 같습니다:

행 번호

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

문자열

이것은범퍼카 토토요청은 발급됩니다. 이 요청은 입력 변수에 의해 수정됩니다. 즉, 컴파일 타임에는 알려지지 않았지만 다음과 같은 변수가 있습니다. 요청에 입력됩니다. 변수는 어디로 가야합니까? 문자열에 ";"이 포함되어 있습니다.

입력 변수

전처리기에 대한 섹션에 설명된 대로 입력 변수는 10개의 인수를 얻습니다.

ECPGt_EOIT

더 이상 입력 변수가 없음을 알려주는 열거형입니다.

출력 변수

전처리기에 대한 섹션에 설명된 대로 입력 변수는 10개의 인수를 얻습니다. 이 변수는 채워져 있습니다. 기능으로.

ECPGt_EORT

더 이상 변수가 없음을 알려주는 열거형입니다.

모두범퍼카 토토문장은 다음과 같습니다 커밋 트랜잭션을 실행하지 않는 한 하나의 트랜잭션에서 수행됩니다. 이 자동 트랜잭션이 첫 번째 문이나 첫 번째 문으로 진행되도록 하려면 커밋이나 롤백 이후의 after 문은 항상 거래. 기본적으로 이 기능을 비활성화하려면-t명령줄의 옵션.

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