SQL Server Native Client 오류 세부 정보

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System(PDW)

SQL Server Native Client OLE DB 공급자는 공급자별 오류 인터페이스 ISQLServerErrorInfo를 정의합니다. 이 인터페이스는 SQL Server 오류에 대한 자세한 정보를 반환하며 명령 실행 또는 행 집합 작업이 실패할 때 유용합니다.

ISQLServerErrorInfo 인터페이스에 대한 액세스를 가져오는 방법에는 두 가지가 있습니다.

소비자는 다음 코드 샘플과 같이 IErrorRecords::GetCustomerErrorObject를 호출하여 ISQLServerErrorInfo 포인터를 가져올 있습니다. (가져올 필요가 없습니다.ISQLErrorInfo.) ISQLErrorInfo와 ISQLServerErrorInfo는 모두 사용자 지정 OLE DB 오류 개체이며, ISQLServerErrorInfo는 프로시저 이름 및 줄 번호와 같은 세부 정보를 포함하여 서버 오류 정보를 가져오는 데 사용할 인터페이스입니다.

// Get the SQL Server custom error object.  
if(FAILED(hr=pIErrorRecords->GetCustomErrorObject(  
   nRec, IID_ISQLServerErrorInfo,  
   (IUnknown**)&pISQLServerErrorErrorInfo)))  

ISQLServerErrorInfo 포인터를 가져오는 또 다른 방법은 이미 가져온 ISQLErrorInfo 포인터에서 QueryInterface 메서드를 호출하는 것입니다. ISQLServerErrorInfo에는 ISQLErrorInfo에서 사용할 수 있는 정보의 상위 집합이 포함되어 있으므로 GetCustomerErrorObject를 통해 ISQLServerErrorInfo로 직접 이동하는 것이 좋습니다.

ISQLServerErrorInfo 인터페이스는 멤버 함수 ISQLServerErrorInfo::GetErrorInfo를 노출합니다. 이 함수는 SSERRORINFO 구조에 대한 포인터와 문자열 버퍼에 대한 포인터를 반환합니다. 두 포인터는 모두 소비자가 IMalloc::Free 메서드를 사용하여 할당 취소해야 하는 메모리를 참조합니다.

SSERRORINFO 구조체 멤버는 소비자가 다음과 같이 해석합니다.

멤버 설명
pwszMessage SQL Server 오류 메시지입니다. IErrorInfo::GetDescription에서 반환된 문자열과 동일합니다.
pwszServer 세션에 대한 SQL Server 인스턴스의 이름입니다.
pwszProcedure 해당되는 경우 오류가 발생한 프로시저의 이름입니다. 그렇지 않으면 빈 문자열입니다.
lNative SQL Server 네이티브 오류 번호입니다. ISQLErrorInfo::GetSQLInfoplNativeError 매개 변수에 반환된 값과 동일합니다.
bState SQL Server 오류 메시지의 상태입니다.
bClass SQL Server 오류 메시지의 심각도입니다.
wLineNumber 해당하는 경우 오류가 발생한 저장 프로시저의 줄 번호입니다.

참고 항목

오류
RAISERROR(Transact-SQL)