이 섹션은 사용 토토 꽁 머니에 대해 설명합니다ECPG도구.
사전 처리기가라고합니다.ECPG. 설치 후에 있습니다.토토 꽁 머니 bin/디렉토리.
theECPG라이브러리는입니다.libecpg.a또는libecpg.so. 또한 라이브러리는를 사용합니다.libpq커뮤니케이션을위한 라이브러리 그만큼토토 꽁 머니서버 귀하의 프로그램을 연결해야합니다.-LECPG -LPQ.
라이브러리에는 "숨겨진"토토 꽁 머니이 있지만 언젠가는 매우 유용 할 수 있습니다.
ecpgdebug (inton, 파일 *스트림)디버그 로깅을 켭니다 첫 번째 인수가 0이 아닌 것으로 호출 된 경우. 디버그 로깅 에서 수행됩니다스트림. 최대SQLStatement Logs 논쟁과 결과.
가장 중요한 것 (ecpgdo) 거의 모든 사람에게 호출됩니다SQL진술은 두 가지를 기록합니다 확장 된 문자열, 즉 모든 입력이있는 문자열 변수가 삽입되고 결과는토토 꽁 머니서버. 이것은 매우 할 수 있습니다 당신의 오류를 검색 할 때 유용합니다SQL진술.
ecpgstatus ()이 토토 꽁 머니 데이터베이스에 연결된 경우 true를 반환하고 If가 거짓으로 반환합니다. 아니다.
에서 오류를 감지 할 수 있으려면토토 꽁 머니서버 라인을 포함합니다 좋다
exec sql 포함 sqlca;파일의 포함 섹션에서. 이것은 a를 정의합니다 구조 및 이름이있는 변수SQLCA다음과 같이 :
struct sqlca char sqlcaid [8]; 긴 sqlabc; 긴 sqlcode; 구조 int sqlerrml; char sqlerrmc [70]; sqlerrm; char sqlerrp [8]; 긴 sqlerrd [6]; / * 0 : 빈 */ / * 1 : 해당되는 경우 가공 된 튜플의 OID */ / * 2 : 인서트에서 처리 된 행 수, 업데이트 */ / * 또는 명령문 삭제 */ / * 3 : 빈 */ / * 4 : 빈 */ / * 5 : 빈 */ char sqlwarn [8]; / * 0 : 'W' */인 경우 'w'로 설정 / * 1 : 'w'가 적어도 하나의 문자 문자열 */ / * 값은 */일 때 잘 렸습니다. /* 호스트 변수에 저장되었습니다. */ / * 2 : 빈 */ / * 3 : 빈 */ / * 4 : 빈 */ / * 5 : 빈 */ / * 6 : 빈 */ / * 7 : 빈 */ char sqlext [8]; sqlca;
마지막에서 오류가 발생한 경우SQL성명서sqlca.sqlcode는 0이 아닙니다. 만약에sqlca.sqlcode당시 0보다 작습니다 이것은 데이터베이스와 같은 일종의 심각한 오류입니다. 정의는 주어진 쿼리와 일치하지 않습니다. 그것이 더 큰 경우 0 그러면 테이블에 포함되지 않은 것처럼 이것은 정상 오류입니다. 요청 된 행.
SQLCA.SQLERRM.SQLERRMC에는 설명 된 문자열이 포함됩니다 오류. 문자열은 소스의 줄 번호로 끝납니다. 파일.
발생할 수있는 오류 목록 :
일반적으로 발생하지 않습니다. 이것은 당신의 신호입니다 가상 메모리가 소진되었습니다.
일반적으로 발생하지 않습니다. 이것은 사전 처리기는 라이브러리의 무언가를 생성했습니다 알지 못합니다. 아마도 당신은 양립 할 수없는 실행 중입니다 사전 처리기 및 도서관의 버전.
이것은를 의미합니다.토토 꽁 머니더 많은 인수를 반환했습니다 일치하는 변수가있는 것보다. 아마도 당신은 가지고 있습니다 의 호스트 변수 몇 개를 잊어 버렸습니다.in : var1, : var2-list.
이것은를 의미합니다.토토 꽁 머니더 적은 반환을 받았습니다 호스트 변수가있는 것보다 인수. 아마도 당신은 가지고 있습니다 너무 많은 호스트 변수로 : var1, : var2-list.
이것은 쿼리가 여러 줄을 반환했음을 의미합니다 그러나 지정된 변수는 배열이 아닙니다. 그만큼select당신은 아마 그렇지 않았을 것입니다 고유한.
이것은 호스트 변수가 an임을 의미합니다.int타입 및 필드토토 꽁 머니데이터베이스는 다른 유형입니다 그리고로 해석 할 수없는 값을 포함합니다.int. 라이브러리 사용strtol이 변환의 경우
이것은 호스트 변수가 an임을 의미합니다.unsigned int타입 및 필드토토 꽁 머니데이터베이스입니다 다른 유형은 할 수없는 값을 포함합니다 로 해석서명되지 않은 int. 그만큼 도서관 용도strtoul이것 변환.
이것은 호스트 변수가 a임을 의미합니다.float타입 및 필드토토 꽁 머니데이터베이스는 다른 유형입니다 그리고로 해석 할 수없는 값을 포함합니다.float. 라이브러리 사용strtod이 변환의 경우
이것은 호스트 변수가 a임을 의미합니다.bool타입 및 필드토토 꽁 머니데이터베이스는 'T'도 아닙니다 '에프'.
토토 꽁 머니반환 pgres_empty_query, 아마도 쿼리가 실제로 있었기 때문일 것입니다 비어 있는.
프로그램은 그렇지 않은 연결에 액세스하려고합니다. 존재하다.
프로그램은 연결에 액세스하려고합니다 존재하지만 열려 있지 않습니다.
사용하려는 진술은 준비.
일부토토 꽁 머니오류. 메시지에는의 오류 메시지가 포함됩니다.토토 꽁 머니백엔드.
토토 꽁 머니신호 우리는 우리가 시작, 커밋 또는 롤백 할 수 없다는 우리 거래.
데이터베이스에 대한 연결이 작동하지 않았습니다.
이것은 "정상"오류입니다. 질문을 찾을 수 없거나 우리는 커서.