SQLError
SQLError#
오류, 경고, 그리고 상태 정보를 포함한 진단 값들을 반환한다.
Unicode SQLErrorW() 동작은 SQLError()와 동일하다.
구 문#
SQLRETURN SQLError (
SQLHENV env,
SQLHDBC dbc,
SQLHSTMT stmt,
SQLCHAR * state,
SQLINTEGER * err,
SQLCHAR * msg,
SQLSMALLINT msgMax,
SQLSMALLINT * msgLength );
인 자#
자료유형 | 인자 | 사용 | 설명 |
---|---|---|---|
SQLHENV | env | 입력 | 환경 핸들 |
SQLHDBC | dbc | 입력 | 연결 핸들 |
SQLHSTMT | stmt | 입력 | 명령문 핸들 |
SQLCHAR * | state | 출력 | 5 문자 SQLSTATE 코드의 포인터 |
SQLINTEGER * | err | 출력 | Altibase 고유 오류 코드의 포인터 |
SQLCHAR * | msg | 출력 | 진단 메세지 텍스트 문자열의 포인터 |
SQLSMALLINT | msgMax | 입력 | *msg 버퍼의 문자 개수 |
SQLSMALLINT * | msgLength | 출력 | *msg에 반환이 가능한 총 바이트 수 (null-termination 문자 제외)의 포인터 |
결괏값#
SQL_SUCCESS
SQL_SUCCESS_WITH_INFO
SQL_INVALID_HANDLE
SQL_ERROR
설 명#
SQLSTATE는 X/OPEN SQL CAE와 X/OPEN SQLCLI 스냅샷에 의해 정의된 것과 같다.
다음과 연관된 진단 정보를 얻을 수 있다.
환경과 연관된 진단 정보를 얻으려면 유효한 환경 핸들을 전달하시오. dbc와 stmt를 각각 SQL_NULL_DBC와 SQL_NULL_STMT로 설정하시오.
연결과 연관된 진단 정보를 얻으려면 유효한 데이터베이스 연결 핸들을 전달하고 stmt를 SQL_NULL_STMT로 설정하시오. 인수 env는 무시된다.
명령문과 연관된 진단 정보를 얻으려면 유효한 명령문 핸들을 전달하시오. env와 dbc 인수는 무시된다.
한 Altibase CLI 함수에 의해 생성된 진단 정보가 SQLError() 이외의 함수가 같은 핸들로 호출되기 전에 검색되지 않으면, 이전 함수 호출에 대한 정보가 손실된다. 두 번째 Altibase CLI 함수 호출에 대해 생성된 진단 정보가 있는지에 관계 없이 사실이다.
오류 메세지가 잘리지 않게 하려면 버퍼길이를 SQL_MAX_MESSAGE_LENGTH + 1 로 선언한다. 메세지 텍스트는 이보다 길어질 수 없다.
예 제#
< $ALTIBASE_HOME/sample/SQLCLI/demo_ex6.cpp 참고 >
SQLINTEGER errNo;
SQLSMALLINT msgLength;
SQLCHAR errMsg[MSG_LEN];
if (SQLError ( SQL_NULL_HENV, aCon, aStmt,
NULL, &errNo,
errMsg, MSG_LEN, &msgLength ) == SQL_SUCCESS)
{
printf(" Error : # %ld, %s\n", errNo, errMsg);
}