다음을 통해 공유


ISQLServerErrorInfo::GetErrorInfo(Native Client OLE DB Provider)

적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)

Important

SQL Server Native Client(약칭 SNAC)는 SQL Server 2022(16.x) 및 SSMS(SQL Server Management Studio) 19에서 제거되었습니다. SQL Server Native Client OLE DB 공급자(SQLNCLI 또는 SQLNCLI11)와 레거시 Microsoft OLE DB Provider for SQL Server(SQLOLEDB)는 모두 새로운 개발에 권장되지 않습니다. 앞으로 SQL Server용 새 Microsoft OLE DB 드라이버(MSOLEDBSQL)로 전환합니다.

SQL Server 오류 세부 정보를 포함하는 SQL Server Native Client OLE DB 공급자 SSERRORINFO 구조체에 대한 포인터를 반환합니다.

SQL Server Native Client OLE DB 공급자는 ISQLServerErrorInfo 오류 인터페이스를 정의합니다. 이 인터페이스는 심각도 및 상태를 포함하여 SQL Server 오류의 세부 정보를 반환합니다.

구문

  
HRESULT GetErrorInfo(  
   SSERRORINFO**ppSSErrorInfo,  
   OLECHAR**ppErrorStrings);  

인수

ppSSErrorInfo[out]
SSERRORINFO 구조에 대한 포인터입니다. 메서드가 실패하거나 오류와 관련된 SQL Server 정보가 없는 경우 공급자는 메모리를 할당하지 않으며 ppSSErrorInfo 인수가 출력에 대한 null 포인터인지 확인합니다.

ppErrorStrings[out]
유니코드 문자열 포인터에 대한 포인터입니다. 메서드가 실패하거나 오류와 연결된 SQL Server 정보가 없는 경우 공급자는 메모리를 할당하지 않으며 ppErrorStrings 인수가 출력에 대한 null 포인터인지 확인합니다. IMalloc::Free 메서드를 사용하여 ppErrorStrings 인수를 해제하면 메모리가 블록에 할당되므로 반환된 SSERRORINFO 구조체의 세 개의 개별 문자열 멤버가 해제됩니다.

반환 코드 값

S_OK
메서드가 성공했습니다.

E_INVALIDARG
ppSSErrorInfo 또는 ppErrorStrings 인수가 NULL이었습니다.

E_OUTOFMEMORY
SQL Server Native Client OLE DB 공급자가 요청을 완료하기에 충분한 메모리를 할당할 수 없습니다.

설명

SQL Server Native Client OLE DB 공급자는 소비자가 전달한 포인터를 통해 반환된 SSERRORINFO 및 OLECHAR 문자열에 대한 메모리를 할당합니다. 소비자는 오류 데이터에 더 이상 액세스할 필요가 없는 경우 IMalloc::Free 메서드를 사용하여 이 메모리의 할당을 취소해야 합니다.

SSERRORINFO 구조는 다음과 같이 정의됩니다.

typedef struct tagSSErrorInfo  
   {  
   LPOLESTR pwszMessage;  
   LPOLESTR pwszServer;  
   LPOLESTR pwszProcedure;  
   LONG lNative;  
   BYTE bState;  
   BYTE bClass;  
   WORD wLineNumber;  
   }  
SSERRORINFO;  
멤버 설명
pwszMessage SQL Server의 오류 메시지입니다. 메시지는 IErrorInfo::GetDescription 메서드를 통해 반환됩니다.
pwszServer 오류가 발생한 SQL Server 인스턴스의 이름입니다.
pwszProcedure 오류가 저장 프로시저에서 발생한 경우에는 오류를 생성한 저장 프로시저의 이름이고, 그렇지 않으면 빈 문자열입니다.
lNative SQL Server 오류 번호입니다. 오류 번호는 ISQLErrorInfo::GetSQLInfo 메서드의 plNativeError 매개 변수에서 반환된 것과 동일합니다.
bState SQL Server 오류의 상태입니다.
bClass SQL Server 오류의 심각도입니다.
wLineNumber 해당하는 경우 오류 메시지를 생성한 SQL Server 저장 프로시저의 줄입니다. 저장 프로시저가 연관되지 않은 경우 기본값은 1입니다.

ppErrorStrings 인수에서 반환된 문자열의 구조 참조 주소에 있는 포인터입니다 .

참고 항목

RAISERROR(Transact-SQL)