ISQLServerErrorInfo::GetErrorInfo (OLE DB)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

下載 OLE DB 驅動程式

傳回包含 SQL Server 錯誤詳細資料的 OLE DB Driver for SQL Server SSERRORINFO 結構指標。

OLE DB Driver for SQL Server 定義 ISQLServerErrorInfo 錯誤介面。 此介面會傳回來自 SQL Server 錯誤的詳細資料,包括其嚴重性和狀態。

語法

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

引數

ppSSErrorInfo[out]
SSERRORINFO 結構的指標。 如果方法失敗,或者沒有與錯誤建立關聯的 SQL Server 資訊,提供者就不會配置任何記憶體,並且確保 ppSSErrorInfo 引數在輸出時為 Null 指標。

ppErrorStrings[out]
Unicode 字元字串指標的指標。 如果方法失敗,或者沒有與錯誤建立關聯的 SQL Server 資訊,提供者就不會配置任何記憶體,並且確保 ppErrorStrings 引數在輸出時為 Null 指標。 使用 IMalloc::Free 方法釋放 ppErrorStrings 引數時,會釋放傳回之 SSERRORINFO 結構的三個個別字串成員,因為有在區塊中配置記憶體。

傳回碼值

S_OK
此方法已成功。

E_INVALIDARG
ppSSErrorInfoppErrorStrings 引數為 NULL。

E_OUTOFMEMORY
OLE DB Driver for SQL Server 無法配置足夠的記憶體來完成要求。

備註

OLE DB Driver for SQL Server 會針對透過取用者傳遞之指標所傳回的 SSERRORINFO 和 OLECHAR 字串配置記憶體。 當取用者不再需要存取錯誤資料時,必須使用 IMalloc::Free 方法來取消配置這個記憶體。

SSERRORINFO 結構定義如下:

typedef struct tagSSErrorInfo  
   {  
   LPOLESTR pwszMessage;  
   LPOLESTR pwszServer;  
   LPOLESTR pwszProcedure;  
   LONG lNative;  
   BYTE bState;  
   BYTE bClass;  
   WORD wLineNumber;  
   }  
SSERRORINFO;  
member 描述
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)