解析:轻松掌握 OLE DB 错误信息的格式

来源:岁月联盟 编辑:zhuzhu 时间:2007-10-15

OLE DB 应用程序以如下方式接收 Microsoft® SQL Server™ 消息:

◆调用 OLE DB ISQLErrorInfo::GetSQLInfo 函数。

◆调用提供程序特定的 ISQLServerErrorInfo::GetErrorInfo 函数。

ISQLErrorInfo::GetSQLInfo 从 master.dbo.sysmessages 将 SQL Server 错误号返回为 plNativeError 参数,将 SQLSTATE 值返回为 pbstrSQLState 参数。这些 SQLSTATE 代码与 SQL Server 消息的任何部分都不相关。用于 SQL Server 的 Microsoft OLE DB 提供程序在向应用程序返回消息时,可随时生成相应的 SQLSTATE 代码。用于 SQL Server 的 Microsoft OLE DB 提供程序生成的 SQLSTATE 代码与在 ODBC 规范中定义的五字符 SQLSTATE 代码相同。对于 ISQLErrorInfo::GetSQLInfo,当 SQL Server 未产生错误时,pbstrSQLState 可能是 NULL。

用于 SQL Server 的 Microsoft OLE DB 提供程序和 ODBC 的 Microsoft OLE DB 提供程序均支持 ISQLErrorInfo 接口。

提供程序特定的 ISQLServerErrorInfo 接口返回有关 SQL Server 错误的更详细的信息。ISQLServerErrorInfo 接口表现一个成员函数 GetErrorInfo。该函数向 SSERRORINFO 结构返回一个指针,向字符串缓冲区返回一个指针。如果 SQL Server 不产生错误,则指向 SSERRORINFO 结构的指针为 NULL。

SQL Server 消息的组成部分将映射成 SSERRORINFO 结构的成员:

pwszMessage

包含 SQL Server 错误描述。

lNative

包含 SQL Server 错误号。

bState

包含 SQL Server 错误状态。

bClass

包含 SQL Server 错误条件的严重度。

wLineNumber

包含所产生错误的存储过程的行号。

(责任编辑:卢兆林)