OLE DB Error Message Format
OLE DB applications receive Microsoft® SQL Server™ messages in these ways:
- Call the OLE DB ISQLErrorInfo::GetSQLInfo function.
- Call the provider-specific ISQLServerErrorInfo::GetErrorInfo function.
ISQLErrorInfo::GetSQLInfo returns the SQL Server error numbers from master.dbo.sysmessages as the plNativeError parameter and the SQLSTATE value as the pbstrSQLState parameter. These SQLSTATE codes are not related to any of the parts of a SQL Server message. The Microsoft OLE DB Provider for SQL Server generates the appropriate SQLSTATE code anytime it returns a message to an application. The SQLSTATE codes generated by the OLE DB Provider for SQL Server are same as the five-character SQLSTATE codes defined in the ODBC specification. For ISQLErrorInfo::GetSQLInfo, pbstrSQLState may be NULL when the error is not produced by SQL Server.
Both the Microsoft OLE DB Provider for SQL Server and the Microsoft OLE DB Provider for ODBC support the ISQLErrorInfo interface.
The provider-specific ISQLServerErrorInfo interface returns more detail about a SQL Server error. The ISQLServerErrorInfo interface exposes one member function, GetErrorInfo. The function returns a pointer to a SSERRORINFO structure and a pointer to a string buffer. The pointer to SSERRORINFO structure is NULL when SQL Server does not produce the error.
The SQL Server message parts map to members of the SSERRORINFO structure:
pwszMessage
Contains the SQL Server error description.
lNative
Contains the SQL Server error number.
bState
Contains the SQL Server error state.
bClass
Contains the severity of the SQL Server error condition.
wLineNumber
Contains the line number of the stored procedure on which the error occurred.