ISQLServerErrorInfo::GetErrorInfo (OLE DB)
傳回SQL Server Native Client OLE DB 提供者 SSERRORINFO 結構的指標,其中包含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
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;
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 引數所傳回之字串中的地址。