ISQLServerErrorInfo::GetErrorInfo (OLE DB)

返回一个指针,该指针指向包含相应 SQL Server 错误详细信息的 SQL Server Native Client OLE DB 访问接口 SSERRORINFO 结构。

语法

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;

成员

说明

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 参数中返回的字符串中的地址。