콘텐츠로 이동

SQLGetDiagField

SQLGetDiagField#

Altibase CLI 함수 사용 후 결과에 따라 진단할 때 사용한다.

Unicode SQLGetDiagFieldW() 동작은 SQLGetDiagField()와 동일하다.

구문#

SQLRETURN SQLGetDiagField(SQLSMALLINT  HandleType,
                          SQLHANDLE    Handle,
                          SQLSMALLINT  RecNumber,
                          SQLSMALLINT  DiagIdentifier,
                          SQLPOINTER   DiagInfoPtr,
                          SQLSMALLINT  BufferLength,
                          SQLSMALLINT  *StringLengthPtr)

인자#

자료유형 인자 사용 설명
SQLSMALLINT HandleType 입력 할당 될 핸들 타입으로 다음 세가지 값 중에서 하나이다.
- SQL_HANDLE_ENV
- SQL_HANDLE_DBC
- SQL_HANDLE_STMT
SQLHANDLE Handle 입력 입력 HandleType이 SQL_HANDLE_ENV이면 InputHandle은 SQL_NULL_HANDLE이고 SQL_HANDLE_DBC이면 환경 핸들이어야 하고 SQL_HANDLE_STMT이면 연결 핸들이어야 한다.
SQLSMALLINT DiagIdentifier 입력 진단 될 종류를 의미한다.
현재 SQL_DIAG_NUMBER만 지원한다.
SQLPOINTER DiagInfoPtr 출력 Diagnostic 정보를 되돌려줄 buffer의 포인터이다.
SQLINTEGER BufferLength 입력 - *DiagInfoPtr이 character string 의 포인터이면 string의 바이트 길이 또는 SQL_NTS
- *DiagInfoPtr이 binary buffer의 포인터이면 바이너리 데이터의 길이
- *DiagInfoPtr이 integer 같은 fixed-length 데이터 타입의 포인터이면 이 값은 무시된다.
SQLINTEGER* StringLengthPtr 출력 *ValuePtr에 반환되는 값의 바이트 길이를 반환(null-termination character 제외)

결괏값#

각 핸들 타입에 맞는 오류 메세지

설명#

이 함수는 실행 후 오류를 포함한 진단을 할 때 사용된다. 다음과 같은 경우에 사용이 된다.

Altibase CLI 함수에서는 SQL_ERROR 또는 SQL_SUCCESS_WITH_INFO를 리턴 받았을 경우 오류와 경고 등의 정보를 수집한다. 이 수집된 정보를 알려고 할 때에 이 함수를 사용한다.

Altibase CLI의 어떤 함수들도 실행 후에 이 함수를 호출하여 진단을 할 수 있다. 이 함수는 최근에 저장된 진단 정보만을 보여준다.

현재는 다음과 같은 핸들 타입에 대해서만 작동한다.

SQL_HANDLE_ENV
SQL_HANDLE_DBC
SQL_HANDLE_STMT

입력 인자중 입력 HandleType이 SQL_HANDLE_ENV이면 InputHandle은 SQL_NULL_HANDLE이고, SQL_HANDLE_DBC이면 환경 핸들이어야 하고 SQL_HANDLE_STMT이면 연결 핸들이어야 한다. 즉 각 입력 핸들 타입에 맞는 값을 세팅해야 한다.

관련 함수#

SQLError