共用方式為


如何:處理 ODBC 錯誤 (ODBC)

擷取 ODBC 訊息可以使用兩個 ODBC 函數呼叫:SQLGetDiagRecSQLGetDiagField。若要在 SQLStatepfNativeErrorMessage 診斷欄位中取得與主要 ODBC 相關的資訊,請呼叫 SQLGetDiagRec,直到它傳回 SQL_NO_DATA 為止。對於每個診斷記錄,可以呼叫 SQLGetDiagField 來擷取個別的欄位。所有驅動程式專用的欄位都必須使用 SQLGetDiagField 擷取。

SQLGetDiagRecSQLGetDiagField 是透過 ODBC 驅動程式管理員,而非個別的驅動程式處理。在成功建立連接之前,ODBC 驅動程式管理員不會快取驅動程式專用的診斷欄位。在成功連接之前,無法針對驅動程式專用的診斷欄位呼叫 SQLGetDiagField。這包含 ODBC 連接命令,即使它們傳回 SQL_SUCCESS_WITH_INFO 也一樣。在下次呼叫 ODBC 函數之前,將無法使用驅動程式專用的診斷欄位。

備註

完整的範例會顯示呼叫標準 ODBC 資訊之 SQLGetDiagRec 的簡單錯誤處理常式。然後它會測試是否有有效連接,如果有,就會為 SQL Server ODBC 驅動程式專用的診斷欄位呼叫 SQLGetDiagField。

完整的範例程式碼位於 ProcessODBCErrors.cpp 檔案中,而且您可以從 MSDN 的<SQL Server 下載>(英文) 頁面下載此檔案。這個範例是使用 Microsoft Visual C++ 2005 所開發的,而且是針對 ODBC 3.0 版或更新版本所開發的。

安全性注意事項安全性注意事項

請盡可能使用 Windows 驗證。如果無法使用 Windows 驗證,請提示使用者在執行階段輸入認證。請避免將認證儲存在檔案中。如果您必須保存認證,則應該用 Win32 crypto API 加密這些認證。

請參閱

其他資源