이 섹션에서는 방법을 설명합니다.ecpg내부적으로 작동합니다. 사용자에게 도움이 되는 귀중한 정보가 포함되어 있습니다. 사용 방법 이해ecpg.
처음 네 줄은 다음에 의해 작성되었습니다.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(배열 가져오기용).
다음은 출력을 설명하는 완전한 예입니다. 파일의 전처리기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"
(이 설명서의 들여쓰기는 가독성을 위해 추가되었으며 전처리기가 하는 일이 아닙니다.)
라이브러리에서 가장 중요한 기능은ECPGdo. 다양한 숫자가 필요합니다.
인수. 다행히도 제한을 두는 컴퓨터는 없습니다.
a에서 허용할 수 있는 변수의 수varargs()함수. 이것은 쉽게 추가될 수 있습니다
인수가 50개 정도입니다.
인수는 다음과 같습니다:
이것은 원래 라인의 라인 번호입니다. 에 사용 오류 메시지만 해당됩니다.
이것은스포츠 토토 사이트발행될 쿼리입니다. 입력에 의해 수정됩니다. 변수, 즉 알려지지 않은 변수 컴파일 시간이 필요하지만 쿼리에 입력해야 합니다. 어디에 변수는 문자열에 포함되어야 합니다.?.
전처리기에 대한 섹션에 설명된 대로, 모든 입력 변수는 10개의 인수를 갖습니다.
더 이상 입력이 없음을 알려주는 열거형 변수.
전처리기에 관한 섹션에 설명된 대로, 모든 입력 변수는 10개의 인수를 갖습니다. 이들 변수 함수로 채워집니다.
더 이상 변수가 없음을 알려주는 열거형입니다.
기본 모드에서 쿼리는 다음 경우에만 커밋됩니다.exec 스포츠 토토 사이트 커밋발행되었습니다.심전도다음의 자동 커밋도 지원합니다.
를 통한 거래-t명령줄 옵션 또는 다음을 통해exec 스포츠 토토 사이트 세트
on으로 자동 커밋성명. 에서자동 커밋모드, 각 쿼리는 자동으로
명시적인 트랜잭션 블록 내에 있지 않는 한 커밋됩니다.
이 모드는 다음을 사용하여 명시적으로 끌 수 있습니다.exec sql 자동 커밋을 꺼짐으로 설정.