다음을 통해 공유


SQLInstallerError 함수

규칙
버전 소개: ODBC 3.0

요약
SQLInstallerError 는 ODBC 설치 관리자 함수에 대한 오류 또는 상태 정보를 반환합니다.

구문

  
RETCODE SQLInstallerError(  
     WORD      iError,  
     DWORD *   pfErrorCode,  
     LPSTR     lpszErrorMsg,  
     WORD      cbErrorMsgMax,  
     WORD *    pcbErrorMsg);  

인수

iError
[입력] 오류 레코드 번호입니다. 유효한 숫자는 1에서 8까지입니다.

pfErrorCode
[출력] 설치 관리자 오류 코드입니다. (자세한 내용은 "주석"을 참조하세요.)

lpszErrorMsg
[출력] 오류 메시지 텍스트의 스토리지에 대한 포인터입니다.

cbErrorMsgMax
[입력] szErrorMsg 버퍼의 최대 길이입니다. null 종료 문자를 뺀 SQL_MAX_MESSAGE_LENGTH 작거나 같아야 합니다.

cbErrorMsgMax
[입력] szErrorMsg 버퍼의 최대 길이입니다. null 종료 문자를 뺀 SQL_MAX_MESSAGE_LENGTH 작거나 같아야 합니다.

pcbErrorMsg
[출력] lpszErrorMsg에서 반환할 수 있는 총 바이트 수(null 종료 문자 제외)에 대한 포인터입니다. 반환할 수 있는 바이트 수가 cbErrorMsgMax보다 크거나 같으면 lpszErrorMsg의 오류 메시지 텍스트가 cbErrorMsgMax에서 null 종료 문자 바이트를 뺀 값으로 잘립니다. pcbErrorMsg 인수는 null 포인터일 수 있습니다.

반품

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA 또는 SQL_ERROR.

진단

SQLInstallerError 는 자체 오류 값을 게시하지 않습니다. SQLInstallerError 는 오류 정보를 검색할 수 없는 경우 SQL_NO_DATA 반환합니다(이 경우 pfErrorCode 가 정의되지 않음). 일반적으로 SQL_ERROR 반환하는 이유로 SQLInstallerError가 오류 값에 액세스할 수 없는 경우 SQLInstallerError는 SQL_ERROR 반환하지만 오류 값은 게시하지 않습니다. 경고 문자열(lpszErrorMsg)의 길이를 모르는 경우 lpszErrorMsg를 NULL로 설정하고 SQLInstallerError를 호출할 수 있습니다. 그런 다음 SQLInstallerError는 cbErrorMsgMax에서 경고 문자열의 길이를 반환합니다. 오류 메시지의 버퍼가 너무 짧으면 SQLInstallerError는 SQL_SUCCESS_WITH_INFO 반환하고 SQLInstallerError에 대한 올바른 pfErrorCode 값을 반환합니다.

오류 메시지에서 잘림이 발생했는지 여부를 확인하기 위해 애플리케이션은 cbErrorMsgMax 인수의 값을 pcbErrorMsg 인수에 기록된 메시지 텍스트의 실제 길이와 비교할 수 있습니다. 잘림이 발생하는 경우 lpszErrorMsg에 대해 올바른 버퍼 길이를 할당해야 하며 SQLInstallerError는 해당 iError 레코드를 사용하여 다시 호출해야 합니다.

주석

애플리케이션은 ODBC 설치 관리자 함수에 대한 이전 호출이 FALSE를 반환할 때 SQLInstallerError를 호출합니다. ODBC 설치 관리자 및 드라이버 또는 번역기 설치 함수는 함수가 실패할 때만 0개 이상의 오류를 게시합니다(FALSE 반환). 따라서 애플리케이션은 ODBC 설치 관리자 함수가 실패한 후에만 SQLInstallerError를 호출합니다.

새 설치 관리자 함수가 호출될 때마다 ODBC 설치 관리자 오류 큐가 플러시됩니다. 따라서 애플리케이션은 마지막 설치 관리자 함수 호출 이외의 함수에 대한 오류를 검색할 것으로 예상할 수 없습니다.

함수 호출에 대한 여러 오류를 검색하기 위해 애플리케이션은 SQLInstallerError를 여러 번 호출합니다.

추가 정보가 없으면 SQLInstallerError는 SQL_NO_DATA 반환하고, pfErrorCode 인수는 정의되지 않으며, pcbErrorMsg 인수는 0이고, lpszErrorMsg 인수에는 단일 null 종료 문자가 포함됩니다(cbErrorMsgMax 인수가 0과 같지 않은 경우).