이 문서는 지원되지 않는 Postgre스포츠 토토 사이트 버전에 대한 것입니다.
당신은 다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.토토 캔 : 문서 : 17 : 34.17. 토토 캔버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

6.6. 개발자용

이 섹션에서는 방법을 설명합니다.ecpg내부적으로 작동합니다. 사용자에게 도움이 되는 귀중한 정보가 포함되어 있습니다. 사용 방법 이해ecpg.

6.6.1. 는 전처리기

처음 네 줄은 다음에 의해 작성되었습니다.ecpg출력에는 고정된 라인이 있습니다. 2개는 댓글이고 2개는 댓글입니다. 라이브러리에 연결하는 데 필요한 줄을 포함합니다.

그런 다음 전처리기는 파일을 읽고 씁니다. 출력. 일반적으로 모든 내용을 출력에 반영합니다.

다음을 볼 때EXEC 스포츠 토토 사이트성명, 그것은 개입하고 그것을 변화시킵니다.EXEC 스포츠 토토 사이트문은 다음 중 하나일 수 있습니다.

섹션 선언

선언섹션 시작 와 함께:

exec sql 선언 섹션 시작;

그리고 다음으로 끝납니다:

exec sql end 선언 섹션;

이 섹션에서는 변수 선언만 있습니다. 허용됩니다. 이 섹션 내에서 선언된 모든 변수는 이름으로 색인된 변수 목록에 함께 저장됩니다. 해당 유형으로.

특히 구조 또는 공용체의 정의 또한 a 안에 나열되어야 합니다.선언섹션. 그렇지 않으면ecpg이러한 유형은 이후 처리할 수 없습니다. 정의를 모릅니다.

선언은 또한 파일에 반영되어 일반적인 C 변수입니다.

특수 유형VARCHAR그리고VARCHAR2이름이 지정된 것으로 변환됩니다. 모든 변수에 대한 구조체입니다. 다음과 같은 선언:

VARCHAR 변수[180];

다음으로 변환됩니다:

struct varchar_var  int len; 문자 arr[180];  변수;
문 포함

include 문은 다음과 같습니다:

exec 스포츠 토토 사이트 include 파일 이름;

이것은 다음과 동일하지 않습니다.

#include <파일 이름.h

대신 지정된 파일은 다음에 의해 구문 분석됩니다.ecpg그래서 파일의 내용은 결과 C 코드에 포함됩니다. 이 방법으로 당신은 할 수 있습니다 포함 파일에 EXEC 스포츠 토토 사이트 명령을 지정합니다.

연결 문

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

exec 스포츠 토토 사이트 연결 대상연결 대상;

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

연결 대상다음 방법으로 지정할 수 있습니다:

  • 데이터베이스 이름[@서버][:포트][as연결 이름][사용자사용자 이름]

  • tcp:postgre스포츠 토토 사이트://서버[:port][/dbname][as연결 이름][사용자사용자 이름]

  • unix:postgre스포츠 토토 사이트://서버[:port][/dbname][as연결 이름][사용자사용자 이름]

  • 문자변수[으로연결 이름][사용자사용자 이름]

  • 문자열[으로연결 이름][사용자]

  • 기본값

  • 사용자

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

  • 사용자 ID

  • 사용자 ID/비밀번호

  • 사용자 ID식별자비밀번호

  • 사용자 ID사용 중비밀번호

마지막으로,사용자 ID그리고비밀번호아마도 상수 텍스트, 문자 변수 또는 문자 문자열.

연결 해제 문

연결 해제 명령문은 다음과 같습니다:

exec 스포츠 토토 사이트 연결 해제 [연결 대상];

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

연결 대상다음 방법으로 지정할 수 있습니다:

  • 연결 이름

  • 기본값

  • 현재

  • 전체

커서 문 열기

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

exec 스포츠 토토 사이트 열기커서;

그리고 출력에 복사되지 않습니다. 대신 커서의선언명령이 사용되는 이유는 다음과 같습니다. 커서도 열립니다.

커밋 문

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

exec 스포츠 토토 사이트 커밋;
롤백 문

롤백 문은 다음과 같습니다:

exec 스포츠 토토 사이트 롤백;
기타 진술

기타스포츠 토토 사이트문은 다음으로 시작하여 사용됩니다.exec 스포츠 토토 사이트그리고 다음으로 끝남;. 그 사이의 모든 것은스포츠 토토 사이트문장 및 변수 대체를 위해 구문 분석되었습니다.

기호가 다음으로 시작하면 변수 대체가 발생합니다. 콜론(:). 변수 그 이름은 다음과 같은 변수 중에서 조회됩니다. 이전에 a 내에서 선언됨선언섹션. 여부에 따라 변수가 입력 또는 출력에 사용되고 있습니다. 변수는 다음의 액세스를 허용하도록 출력됩니다. 기능.

다음의 일부인 모든 변수에 대해스포츠 토토 사이트쿼리, 함수는 다른 것을 얻습니다 인수:

  • 특수 기호로서의 유형.

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

  • 변수의 크기문자또는varchar.

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

  • 배열의 다음 요소에 대한 오프셋( 배열 가져오기).

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

  • 표시 변수 값에 대한 포인터 또는 표시기의 포인터에 대한 포인터 변수.

  • 0.

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

  • 표시기의 다음 요소에 대한 오프셋 array(배열 가져오기용).

6.6.2. 에이 완전한 예

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

exec sql 시작 선언 섹션;
정수 인덱스;
정수 결과;
exec sql end 선언 섹션;
...
exec sql select res into :result from mytable where index = :index;

다음으로 번역됩니다:

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

/* exec sql 선언 섹션 시작 */

#라인 1 "foo.pgc"

 정수 인덱스;
 정수 결과;
/* exec sql 선언 섹션 끝 */
...
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"

(이 설명서의 들여쓰기는 가독성을 위해 추가되었으며 전처리기가 하는 일이 아닙니다.)

6.6.3. 는 도서관

라이브러리에서 가장 중요한 기능은ECPGdo. 다양한 숫자가 필요합니다. 인수. 다행히도 제한을 두는 컴퓨터는 없습니다. a에서 허용할 수 있는 변수의 수varargs()함수. 이것은 쉽게 추가될 수 있습니다 인수가 50개 정도입니다.

인수는 다음과 같습니다:

행 번호

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

문자열

이것은스포츠 토토 사이트발행될 쿼리입니다. 입력에 의해 수정됩니다. 변수, 즉 알려지지 않은 변수 컴파일 시간이 필요하지만 쿼리에 입력해야 합니다. 어디에 변수는 문자열에 포함되어야 합니다.?.

입력 변수

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

ECPGt_EOIT

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

출력 변수

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

ECPGt_EORT

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

기본 모드에서 쿼리는 다음 경우에만 커밋됩니다.exec 스포츠 토토 사이트 커밋발행되었습니다.심전도다음의 자동 커밋도 지원합니다. 를 통한 거래-t명령줄 옵션 또는 다음을 통해exec 스포츠 토토 사이트 세트 on으로 자동 커밋성명. 에서자동 커밋모드, 각 쿼리는 자동으로 명시적인 트랜잭션 블록 내에 있지 않는 한 커밋됩니다. 이 모드는 다음을 사용하여 명시적으로 끌 수 있습니다.exec sql 자동 커밋을 꺼짐으로 설정.