如何处理 ODBC 错误 (ODBC)

可以使用以下两个 ODBC 函数调用来检索 ODBC 消息:SQLGetDiagRecSQLGetDiagField。若要获取 SQLStatepfNativeErrorMessage 诊断字段中有关 ODBC 的主要信息,请调用 SQLGetDiagRec,直到其返回 SQL_NO_DATA 为止。对于每条诊断记录,可以调用 SQLGetDiagField 来检索各个字段。所有特定于驱动程序的字段都必须使用 SQLGetDiagField 来检索。

SQLGetDiagRecSQLGetDiagField 通过 ODBC 驱动程序管理器进行处理,而不是通过单独的驱动程序进行处理。在成功连接之前,ODBC 驱动程序管理器不会缓存特定于驱动程序的诊断字段。在成功连接之前,无法针对特定于驱动程序的诊断字段调用 SQLGetDiagField。这包括 ODBC 连接命令,即使它们返回 SQL_SUCCESS_WITH_INFO 也是如此。在进行下一次 ODBC 函数调用之前,特定于驱动程序的诊断字段不可用。

注释

本文提供了一个完整示例,该示例显示了一个调用 SQLGetDiagRec 以获取标准 ODBC 信息的简单错误处理程序。然后,该示例测试是否存在有效连接,如果存在,它会对特定于 SQL Server ODBC 驱动程序的诊断字段调用 SQLGetDiagField。

完整的示例代码位于 ProcessODBCErrors.cpp 文件中,可以从 MSDN 上的 SQL Server Downloads(SQL Server 下载)页下载此文件。此示例是使用 Microsoft Visual C++ 2005 开发的,并且是针对 ODBC 版本 3.0 或更高版本开发的。

安全说明安全说明

请尽可能使用 Windows 身份验证。如果 Windows 身份验证不可用,请在运行时提示用户输入其凭据。不要将凭据存储在一个文件中。如果必须保存凭据,则应当用 Win32 crypto API(Win32 加密 API)进行加密。

请参阅

其他资源