當嘗試在 Windows 上編寫一個透過 ODBC 連接到資料庫的程式時,出現以下錯誤:
[Microsoft][ODBC 驅動程式管理員] 未找到資料來源名稱且未指定預設驅動程式。
我確信我的程式碼是正確的。它甚至可以在另一台電腦上運行。
為什麼我會收到此錯誤?我該如何修復它?
在設計模式下,已將值設為屬性 TFDConnection.ConnectionDefName 必須為空。
TFDConnection.ConnectionDefName
簡單地說,錯誤訊息告訴您 ODBC 驅動程式管理員找不到您在連接字串或 DSN 中指定的驅動程式。
這可能有 3 個常見原因:
您可以透過前往 ODBC 資料來源管理器來檢查系統上安裝的驅動程式。要開啟它,請按 ⊞ Win R,然後輸入:odbcad32.exe。然後檢查選項卡驅動程式以取得已安裝的驅動程式。 名稱列指示您應在連接字串或 DSN 中使用的確切名稱。
odbcad32.exe
如果您使用的是 64 位元 Windows,則只列出安裝在 你的系統。若要查看安裝了哪些32 位元驅動程序,請按⊞ Win R,然後輸入:C:\Windows\SysWOW64\odbcad32.exe code>,然後再次轉到“驅動程式”選項卡。
C:\Windows\SysWOW64\odbcad32.exe code>,然後再次轉到“驅動程式”選項卡。
然後,您有兩個選擇,要么調整程式運行的位數,要么安裝具有不同位數的驅動程式。
Windows 上預設安裝的某些驅動程式僅具有 32 位元變體。這些不能與 64 位元程式一起使用。
您通常可以在工作管理員中識別程式正在執行的位數。在 Windows 10 中,所有 32 位元程式的名稱後面都會附加 (32-bit)。如果不存在,則您可能正在運行 64 位元程序,並且大多數現代程式語言和環境預設在 64 位元上運行,但允許您切換到 32 位元。但是,不同程式語言的具體細節超出了本問題的範圍。
ODBC 連線字串如下所示:
DRIVER={DriverName};ParameterName1=ParameterValue1;ParameterNameN=ParameterValueN;
如果驅動程式名稱部分可能包含特殊字符,則需要以大括號分隔,並且需要與已安裝的驅動程式名稱完全匹配(如ODBC 資料來源管理器中所示),包括空格和印刷字符,但不包括大寫字母。
請注意,對於已部署的程式碼,驅動程式必須存在於執行程式碼的電腦/伺服器上。
這取決於您要使用哪個驅動程式。
常見驅動程式清單及下載位置(所有 32 位元和 64 位元均位於相同 URL):
如果您要使用的驅動程式未列出,通常可以使用 Google 輕鬆找到該位置。
在設計模式下,已將值設為屬性
TFDConnection.ConnectionDefName
必須為空。什麼原因導致此錯誤?
簡單地說,錯誤訊息告訴您 ODBC 驅動程式管理員找不到您在連接字串或 DSN 中指定的驅動程式。
這可能有 3 個常見原因:
如何檢查我的系統上安裝了哪些驅動程式?
您可以透過前往 ODBC 資料來源管理器來檢查系統上安裝的驅動程式。要開啟它,請按 ⊞ Win R,然後輸入:
odbcad32.exe
。然後檢查選項卡驅動程式以取得已安裝的驅動程式。 名稱列指示您應在連接字串或 DSN 中使用的確切名稱。如果您使用的是 64 位元 Windows,則只列出安裝在 你的系統。若要查看安裝了哪些32 位元驅動程序,請按⊞ Win R,然後輸入:
C:\Windows\SysWOW64\odbcad32.exe code>,然後再次轉到“驅動程式”選項卡。
驅動程式已安裝,但可能位數錯誤,我該怎麼辦?
然後,您有兩個選擇,要么調整程式運行的位數,要么安裝具有不同位數的驅動程式。
Windows 上預設安裝的某些驅動程式僅具有 32 位元變體。這些不能與 64 位元程式一起使用。
您通常可以在工作管理員中識別程式正在執行的位數。在 Windows 10 中,所有 32 位元程式的名稱後面都會附加 (32-bit)。如果不存在,則您可能正在運行 64 位元程序,並且大多數現代程式語言和環境預設在 64 位元上運行,但允許您切換到 32 位元。但是,不同程式語言的具體細節超出了本問題的範圍。
如何驗證我沒有輸錯驅動程式名稱?
ODBC 連線字串如下所示:
如果驅動程式名稱部分可能包含特殊字符,則需要以大括號分隔,並且需要與已安裝的驅動程式名稱完全匹配(如ODBC 資料來源管理器中所示),包括空格和印刷字符,但不包括大寫字母。
請注意,對於已部署的程式碼,驅動程式必須存在於執行程式碼的電腦/伺服器上。
我沒有驅動程序,或位數錯誤,我在哪裡可以獲得正確的驅動程式?
這取決於您要使用哪個驅動程式。
常見驅動程式清單及下載位置(所有 32 位元和 64 位元均位於相同 URL):
如果您要使用的驅動程式未列出,通常可以使用 Google 輕鬆找到該位置。