| Postgre스포츠 토토 사이트 9.3.25 문서 | ||||
|---|---|---|---|---|
| PostgreSQL : 문서 : 9.3 : 설명 자 스포츠 토토 베트맨 사용 | 젠 토토 : 문서 : 9.3 : ECPG- C에 포함 된 SQL | 33장.ECPG- 임베디드Postgre사설 토토C에서 | 다음 | |
이 섹션에서는 예외 상황을 처리하는 방법을 설명합니다. Embedded 스포츠 토토 사이트 프로그램의 경고. 비배타적 2개가 있습니다 이를 위한 시설입니다.
경고 및 오류를 처리하도록 콜백을 구성할 수 있습니다. 를 사용하는 조건항상명령.
오류 또는 경고에 대한 자세한 정보를 얻을 수 있습니다. 에서스포츠 토토 사이트ca변수.
오류와 경고를 포착하는 간단한 방법 중 하나는 특정 조건이 발생할 때마다 실행되는 특정 작업 발생합니다. 일반적으로:
언제든지 스포츠 토토 사이트을 실행조건 액션;
조건다음 중 하나일 수 있습니다. 다음:
지정된 작업은 실행 중에 오류가 발생할 때마다 호출됩니다. 스포츠 토토 사이트 문의 실행.
다음 중 경고가 발생할 때마다 지정된 작업이 호출됩니다. 스포츠 토토 사이트 문의 실행.
지정된 작업은 스포츠 토토 사이트 문이 실행될 때마다 호출됩니다. 0개 행을 검색하거나 영향을 줍니다. (이 조건은 오류가 아니며, 하지만 특별히 처리하는 데 관심이 있을 수도 있습니다.)
액션다음 중 하나일 수 있습니다. 다음:
이것은 조건이 무시된다는 의미입니다. 이것은 기본값입니다.
지정된 라벨로 이동(C 사용고토성명).
표준 오류에 메시지를 인쇄합니다. 이는 간단한 작업에 유용합니다. 프로그램 또는 프로토타이핑 중에. 메시지의 세부정보는 확인할 수 없습니다. 구성됩니다.
전화출구(1), 종료됩니다. 프로그램.
C 문 실행휴식. 이 루프에서만 사용해야 합니다. 또는스위치문장.
지정된 인수를 사용하여 지정된 C 함수를 호출합니다.
스포츠 토토 사이트 표준은 작업만 제공합니다.계속그리고이동(그리고다음으로 이동).
다음은 간단한 작업에 사용할 수 있는 예입니다. 프로그램. 경고가 발생하면 간단한 메시지를 인쇄하고 오류가 발생하면 프로그램을 중단합니다.
스포츠 토토 사이트WARNING 스포츠 토토 사이트PRINT 시 스포츠 토토 사이트 실행; 스포츠 토토 사이트ERROR가 중지될 때마다 스포츠 토토 사이트을 실행합니다.
성명문언제든지 스포츠 토토 사이트을 실행은 C 문이 아닌 스포츠 토토 사이트 전처리기의 지시문입니다. 오류 또는 설정된 경고 조치는 모든 Embedded 스포츠 토토 사이트 문에 적용됩니다. 핸들러가 설정된 지점 아래에 나타나는 첫 번째 사이에 동일한 조건에 대해 다른 작업이 설정되었습니다.언제든지 스포츠 토토 사이트을 실행및 스포츠 토토 사이트 문 C의 제어 흐름에 관계없이 조건을 유발합니다. 프로그램. 따라서 다음 두 C 프로그램 발췌 중 어느 것도 그렇지 않습니다. 원하는 효과가 있습니다.
/*
* 틀렸어
*/
int main(int argc, char *argv[])
...
if (상세)
스포츠 토토 사이트WARNING 스포츠 토토 사이트PRINT가 발생할 때마다 스포츠 토토 사이트을 실행합니다.
...
EXEC 스포츠 토토 사이트 선택 ...;
...
/*
* 틀렸어
*/
int main(int argc, char *argv[])
...
set_error_handler();
...
EXEC 스포츠 토토 사이트 선택 ...;
...
정적 무효 set_error_handler(void)
스포츠 토토 사이트ERROR가 중지될 때마다 EXEC 스포츠 토토 사이트;보다 강력한 오류 처리를 위해 내장 스포츠 토토 사이트 인터페이스 이름이 포함된 전역 변수를 제공합니다.스포츠 토토 사이트ca(스포츠 토토 사이트 통신 영역) 다음 구조:
구조체
숯 스포츠 토토 사이트caid[8];
긴 sqlabc;
긴 스포츠 토토 사이트코드;
구조체
int sqlerrml;
char 스포츠 토토 사이트errmc[스포츠 토토 사이트ERRMC_LEN];
sqlerrm;
숯 스포츠 토토 사이트errp[8];
긴 스포츠 토토 사이트errd[6];
숯 스포츠 토토 사이트warn[8];
char 스포츠 토토 사이트state[5];
스포츠 토토 사이트ca;
(다중 스레드 프로그램에서 모든 스레드는 자동으로 자신의 사본스포츠 토토 사이트ca. 이는 다음과 유사하게 작동합니다. 표준 C 전역 변수 처리errno.)
스포츠 토토 사이트ca경고와 오류를 모두 다룹니다. 실행 중 경고나 오류가 여러 번 발생한 경우 진술, 그럼스포츠 토토 사이트ca다음만 포함합니다 마지막 항목에 대한 정보입니다.
마지막에 오류가 발생하지 않은 경우스포츠 토토 사이트성명,스포츠 토토 사이트ca.스포츠 토토 사이트code0이 되며스포츠 토토 사이트ca.스포츠 토토 사이트state될 것이다"00000". 경고 또는 오류가 발생한 경우스포츠 토토 사이트ca.스포츠 토토 사이트code음수가 되며스포츠 토토 사이트ca.스포츠 토토 사이트state다음과 다를 것입니다"00000". 긍정적인스포츠 토토 사이트ca.스포츠 토토 사이트code다음과 같은 무해한 상태를 나타냅니다. 마지막 쿼리에서 0개의 행을 반환했기 때문입니다.스포츠 토토 사이트code그리고스포츠 토토 사이트state있습니다 두 가지 다른 오류 코드 체계; 자세한 내용은 아래에 표시됩니다.
마지막 스포츠 토토 사이트 문이 성공했다면, 그러면스포츠 토토 사이트ca.스포츠 토토 사이트errd[1]처리된 OID가 포함되어 있습니다. 행(해당되는 경우) 및스포츠 토토 사이트ca.스포츠 토토 사이트errd[2]해당되는 경우 처리되거나 반환된 행의 수를 포함합니다. 명령.
오류 또는 경고가 발생한 경우,스포츠 토토 사이트ca.sqlerrm.스포츠 토토 사이트errmc다음 문자열을 포함합니다.
오류를 설명합니다. 필드스포츠 토토 사이트ca.sqlerrm.sqlerrml다음의 길이를 포함합니다.
에 저장된 오류 메시지스포츠 토토 사이트ca.sqlerrm.스포츠 토토 사이트errmc(결과strlen(), C에는별로 흥미롭지 않습니다.
프로그래머). 일부 메시지는 너무 길어서
고정 크기스포츠 토토 사이트errmc배열; 그들은 될 것이다
잘렸습니다.
경고가 발생할 경우,스포츠 토토 사이트ca.스포츠 토토 사이트warn[2]다음으로 설정됨W. (다른 모든 경우에는 와 다른 것으로 설정W.) 만약스포츠 토토 사이트ca.스포츠 토토 사이트warn[1]다음으로 설정됨W, 값이 저장될 때 잘렸습니다. 호스트 변수입니다.스포츠 토토 사이트ca.스포츠 토토 사이트warn[0]설정됨 에W다른 요소 중 하나라도 설정된 경우 경고를 표시합니다.
필드스포츠 토토 사이트caid, 스포츠 토토 사이트cabc, 스포츠 토토 사이트errp, 및 나머지 요소스포츠 토토 사이트errd그리고스포츠 토토 사이트warn현재 포함된 내용 없음 유용한 정보입니다.
구조스포츠 토토 사이트ca다음에 정의되어 있지 않습니다. 스포츠 토토 사이트 표준이지만 다른 여러 스포츠 토토 사이트 데이터베이스에서 구현됩니다. 시스템. 정의는 핵심적으로 비슷하지만 원하는 경우 이식 가능한 애플리케이션을 작성하려면 다음 사항을 조사해야 합니다. 신중하게 다른 구현을 하세요.
여기에 다음의 사용을 결합한 한 가지 예가 있습니다.항상그리고스포츠 토토 사이트ca, 내용을 인쇄하는 중스포츠 토토 사이트ca때 오류가 발생합니다. 이는 아마도 디버깅이나 프로토타이핑에 유용할 것입니다. 응용 프로그램을 더 설치하기 전에"사용자 친화적"오류 핸들러.
스포츠 토토 사이트ERROR 호출 시 스포츠 토토 사이트 실행 print_스포츠 토토 사이트ca();
무효
print_스포츠 토토 사이트ca()
fprintf(stderr, "==== 스포츠 토토 사이트ca ====\n");
fprintf(stderr, "스포츠 토토 사이트code: %ld\n", 스포츠 토토 사이트ca.스포츠 토토 사이트code);
fprintf(stderr, "sqlerrm.sqlerrml: %d\n", 스포츠 토토 사이트ca.sqlerrm.sqlerrml);
fprintf(stderr, "sqlerrm.스포츠 토토 사이트errmc: %s\n", 스포츠 토토 사이트ca.sqlerrm.스포츠 토토 사이트errmc);
fprintf(stderr, "스포츠 토토 사이트errd: %ld %ld %ld %ld %ld %ld\n", 스포츠 토토 사이트ca.스포츠 토토 사이트errd[0],스포츠 토토 사이트ca.스포츠 토토 사이트errd[1],스포츠 토토 사이트ca.스포츠 토토 사이트errd[2],
스포츠 토토 사이트ca.스포츠 토토 사이트errd[3],스포츠 토토 사이트ca.스포츠 토토 사이트errd[4],스포츠 토토 사이트ca.스포츠 토토 사이트errd[5]);
fprintf(stderr, "스포츠 토토 사이트warn: %d %d %d %d %d %d %d %d\n", 스포츠 토토 사이트ca.스포츠 토토 사이트warn[0], 스포츠 토토 사이트ca.스포츠 토토 사이트warn[1], 스포츠 토토 사이트ca.스포츠 토토 사이트warn[2],
스포츠 토토 사이트ca.스포츠 토토 사이트warn[3], 스포츠 토토 사이트ca.스포츠 토토 사이트warn[4], 스포츠 토토 사이트ca.스포츠 토토 사이트warn[5],
스포츠 토토 사이트ca.스포츠 토토 사이트warn[6], 스포츠 토토 사이트ca.스포츠 토토 사이트warn[7]);
fprintf(stderr, "스포츠 토토 사이트state: %5s\n", 스포츠 토토 사이트ca.스포츠 토토 사이트state);
fprintf(stderr, "===============\n");
결과는 다음과 같습니다(여기서는 철자가 틀린 테이블 이름):
==== 스포츠 토토 사이트ca ==== 스포츠 토토 사이트코드: -400 sqlerrm.sqlerrml: 49 sqlerrm.스포츠 토토 사이트errmc: "pg_databasep" 관계가 38행에 존재하지 않습니다. 스포츠 토토 사이트errd: 0 0 0 0 0 0 스포츠 토토 사이트warn: 0 0 0 0 0 0 0 0 스포츠 토토 사이트상태: 42P01 ===============
필드스포츠 토토 사이트ca.스포츠 토토 사이트state그리고스포츠 토토 사이트ca.스포츠 토토 사이트code두 가지 다른 계획입니다 오류 코드를 제공합니다. 둘 다 스포츠 토토 사이트 표준에서 파생되었습니다. 하지만스포츠 토토 사이트CODE다음에서 더 이상 사용되지 않는 것으로 표시되었습니다. 표준의 스포츠 토토 사이트-92 버전이며 나중에 삭제되었습니다. 에디션. 따라서 새로운 애플리케이션을 다음과 같이 강력히 권장합니다. 사용스포츠 토토 사이트STATE.
스포츠 토토 사이트STATE는 5자리 배열입니다. 는 5개의 문자에는 다음을 나타내는 숫자나 대문자가 포함됩니다. 다양한 오류 및 경고 조건의 코드입니다.스포츠 토토 사이트STATE계층 구조가 있습니다: 처음 두 개 문자는 조건의 일반적인 클래스를 나타냅니다. 세 문자는 일반 조건의 하위 클래스를 나타냅니다. 에이 성공적인 상태는 코드로 표시됩니다.00000.스포츠 토토 사이트STATE코드 대부분 스포츠 토토 사이트 표준에 정의되어 있습니다.Postgre스포츠 토토 사이트서버가 기본적으로 지원함스포츠 토토 사이트STATE오류 코드; 그러므로 높은 수준의 이 오류 코드 구성표를 사용하면 일관성을 얻을 수 있습니다. 모든 응용 프로그램 전반에 걸쳐. 자세한 내용은 참조부록 A.
스포츠 토토 사이트CODE, 더 이상 사용되지 않는 오류 코드 구성표는 단순한 정수입니다. 값 0은 성공을 나타내고, 양수 값은 추가 정보가 성공했음을 나타냅니다. 음수 값은 오류를 나타냅니다. 스포츠 토토 사이트 표준은 다음과 같이 정의합니다. 마지막 명령을 나타내는 양수 값 +100 0개 행을 반환하거나 영향을 미쳤으며 특정 음수 값은 없습니다. 따라서 이 방식은 이식성이 좋지 않을 뿐이며 계층적 코드 할당이 없습니다. 역사적으로 임베디드 스포츠 토토 사이트 프로세서포스트그레스포츠 토토 사이트있음 특정한 것을 할당함스포츠 토토 사이트CODE값 그 용도는 숫자 값과 함께 아래에 나열되어 있습니다. 상징적 이름. 다른 스포츠 토토 사이트로 이식할 수 없다는 점을 기억하세요. 구현. 애플리케이션을 다음으로 쉽게 포팅하기 위해스포츠 토토 사이트STATE구성표, 해당스포츠 토토 사이트STATE또한 나열됩니다. 있다, 그러나 둘 사이에는 일대일 또는 일대다 매핑이 없습니다. 계획(실제로 다대다 방식)이므로 글로벌스포츠 토토 사이트STATE목록부록 A각각의 경우에.
이들은 할당된 것입니다스포츠 토토 사이트CODE값:
오류가 없음을 나타냅니다. (스포츠 토토 사이트STATE 00000)
이것은 마지막 명령이 실패했음을 나타내는 무해한 조건입니다. 0개 행을 검색 또는 처리했거나 작업이 끝났습니다. 커서. (스포츠 토토 사이트STATE 02000)
루프에서 커서를 처리할 때 이 코드를 다음과 같이 사용할 수 있습니다. 루프를 중단할 시기를 감지하는 방법은 다음과 같습니다.
동안 (1)
EXEC 스포츠 토토 사이트 가져오기 ... ;
if (스포츠 토토 사이트ca.스포츠 토토 사이트code == ECPG_NOT_FOUND)
휴식;
하지만발견되지 않으면 중단하세요이 작업은 내부적으로 효과적으로 수행되므로 일반적으로 이점이 없습니다. 이것을 명시적으로 작성하는 것입니다.
가상 메모리가 소진되었음을 나타냅니다. 숫자 값은 다음과 같이 정의됩니다.-ENOMEM. (스포츠 토토 사이트STATE YE001)
전처리기가 다음을 생성했음을 나타냅니다. 도서관은 모른다. 아마도 당신은 호환되지 않는 실행 중입니다 전처리기와 라이브러리의 버전. (스포츠 토토 사이트STATE YE002)
이것은 명령이 다음보다 더 많은 호스트 변수를 지정했음을 의미합니다. 예상되는 명령. (스포츠 토토 사이트STATE 07001 또는 07002)
이것은 명령이 다음보다 적은 수의 호스트 변수를 지정했음을 의미합니다. 예상되는 명령. (스포츠 토토 사이트STATE 07001 또는 07002)
이것은 쿼리가 여러 행을 반환했지만 명령문이 반환되었음을 의미합니다. 하나의 결과 행만 저장하도록 준비되었습니다(예를 들어 지정된 변수는 배열이 아닙니다). (스포츠 토토 사이트STATE 21000)
호스트 변수 유형은 다음과 같습니다.int그리고
데이터베이스의 데이터가 다른 유형이고 값을 포함합니다.
로 해석될 수 없습니다.int. 는
도서관 용도strtol()이것을 위해
전환. (스포츠 토토 사이트STATE 42804)
호스트 변수 유형은 다음과 같습니다.부호 없는 정수그리고 데이터베이스의 데이터는 다른 유형이며 다음을 포함합니다.
으로 해석될 수 없는 값서명되지 않음
정수. 도서관은strtoul()이 변환을 위해. (스포츠 토토 사이트STATE 42804)
호스트 변수 유형은 다음과 같습니다.플로트그리고
데이터베이스의 데이터가 다른 유형이고 다음과 같은 값을 포함합니다.
다음과 같이 해석할 수 없습니다.플로트. 도서관
용도스트르토드()이 변환을 위해.
(스포츠 토토 사이트STATE 42804)
호스트 변수 유형은 다음과 같습니다.숫자그리고 데이터베이스의 데이터가 다른 유형이고 값을 포함합니다. 다음과 같이 해석될 수 없습니다.숫자값. (스포츠 토토 사이트STATE 42804)
호스트 변수 유형은 다음과 같습니다.간격그리고 데이터베이스의 데이터가 다른 유형이고 값을 포함합니다. 로 해석될 수 없습니다.간격값. (스포츠 토토 사이트STATE 42804)
호스트 변수 유형은 다음과 같습니다.날짜그리고 데이터베이스의 데이터가 다른 유형이고 다음과 같은 값을 포함합니다. 다음과 같이 해석할 수 없습니다.날짜값. (스포츠 토토 사이트STATE 42804)
호스트 변수 유형은 다음과 같습니다.타임스탬프그리고 데이터베이스의 데이터가 다른 유형이고 값을 포함합니다. 다음과 같이 해석될 수 없습니다.타임스탬프값. (스포츠 토토 사이트STATE 42804)
이것은 호스트 변수가 유형임을 의미합니다.부울그리고 데이터베이스의 데이터는 둘 다 아닙니다''아니요'f'. (스포츠 토토 사이트STATE 42804)
다음으로 보낸 성명서Postgre스포츠 토토 사이트서버가 비어 있었습니다. (이것은 할 수 없습니다 일반적으로 Embedded 스포츠 토토 사이트 프로그램에서 발생하므로 내부 오류입니다.) (스포츠 토토 사이트STATE YE002)
Null 값이 반환되었으며 Null 표시 변수가 없습니다. 공급됩니다. (스포츠 토토 사이트STATE 22002)
배열이 필요한 곳에 일반 변수가 사용되었습니다. (스포츠 토토 사이트STATE 42804)
데이터베이스가 다음 위치에 일반 변수를 반환했습니다. 배열 값이 필요합니다. (스포츠 토토 사이트STATE 42804)
프로그램이 존재하지 않는 연결에 접근을 시도했습니다. (스포츠 토토 사이트STATE 08003)
프로그램이 존재하는 연결에 접근하려고 시도했지만 열리지 않습니다. (내부 오류입니다.) (스포츠 토토 사이트STATE YE002)
당신이 사용하려는 명령문은 준비되지 않았습니다. (스포츠 토토 사이트STATE 26000)
중복 키 오류, 고유 제약 조건 위반(Informix 호환 모드). (스포츠 토토 사이트STATE 23505)
지정된 설명자를 찾을 수 없습니다. 당신이라는 진술 사용하려는 준비가 되어 있지 않습니다. (스포츠 토토 사이트STATE 33000)
지정된 설명자 인덱스가 범위를 벗어났습니다. (스포츠 토토 사이트STATE 07009)
잘못된 설명 항목이 요청되었습니다. (이것은 내부 오류.) (스포츠 토토 사이트STATE YE002)
동적 명령문을 실행하는 동안 데이터베이스는 숫자 값을 리턴했으며 호스트 변수가 숫자가 아닙니다. (스포츠 토토 사이트STATE 07006)
동적 명령문을 실행하는 동안 데이터베이스는 숫자가 아닌 값을 리턴했으며 호스트 변수는 숫자였습니다. (스포츠 토토 사이트STATE 07006)
하위 쿼리의 결과가 단일 행이 아닙니다(Informix 호환 모드). (스포츠 토토 사이트STATE 21000)
다음으로 인해 발생한 일부 오류Postgre스포츠 토토 사이트서버. 메시지에는 다음이 포함됩니다. 오류 메시지는Postgre스포츠 토토 사이트서버.
그Postgre스포츠 토토 사이트서버가 신호를 보냈습니다 트랜잭션을 시작, 커밋 또는 롤백할 수 없습니다. (스포츠 토토 사이트STATE 08007)
데이터베이스 연결 시도가 성공하지 못했습니다. (스포츠 토토 사이트STATE 08001)
중복 키 오류, 고유 제약 조건 위반. (스포츠 토토 사이트STATE 23505)
하위 쿼리의 결과는 단일 행이 아닙니다. (스포츠 토토 사이트STATE 21000)
잘못된 커서 이름이 지정되었습니다. (스포츠 토토 사이트STATE 34000)
거래가 진행 중입니다. (스포츠 토토 사이트STATE 25001)
활성(진행 중인) 거래가 없습니다. (스포츠 토토 사이트STATE 25P01)
기존 커서 이름이 지정되었습니다. (스포츠 토토 사이트STATE 42P03)
| 이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
| 설명자 사용 지역 | 젠 토토 : 문서 : 9.3 : ECPG- C에 포함 된 SQL | 전처리기 지시문 |