SQL Server Native Client 오류 세부 정보
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform 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::GetSQLInfo의 plNativeError 매개 변수에 반환된 값과 동일합니다. |
bState | SQL Server 오류 메시지의 상태입니다. |
bClass | SQL Server 오류 메시지의 심각도입니다. |
wLineNumber | 해당하는 경우 오류가 발생한 저장 프로시저의 줄 번호입니다. |