
我無法刪除系統 DSN 類型的特定 ODBC。我可以在同一台伺服器上建立和刪除其他 ODBC 連接,但無法刪除特定的 ODBC(名稱 = 預設)。如果我嘗試將其重命名為“Default”以外的名稱,則會使用原始名稱“Default”創建一個新的系統 DSN,該系統 DSN 也具有相同的元數據,例如描述和伺服器 FQDN。
環境資訊:
- 作業系統 = Windows Server 2012 標準 64 位
- ODBC =
- 名稱 = 預設
- 平台 = 32 位
- 驅動程式 = SQL Server Native Client 10.0
- 類型 = 系統 DSN
- 資料庫 = SQL Server 2008 R2 SP2(位於另一台伺服器上)
到目前為止我所嘗試/學到的:
- 我嘗試使用“ODBC 資料來源 32 位元”(路徑 =%windir%\syswow64\odbcad32.exe)。嘗試刪除它後,我沒有收到錯誤訊息,但 ODBC 仍然存在。我什至無法使用“ODBC 資料來源 64 位元”(路徑 =%windir%\system32\odbcad32.exe),儘管我可以使用此 64 位元工具查看(但不能修改)其他 32 位元 ODBC。
- 如果我在配置此“預設”ODBC 的工具中執行“測試資料來源...”,則會成功並顯示“測試成功!”
- 此 ODBC 最初是與 Microsoft Dynamics GP 2010 一起使用。
- 我無法在註冊表中找到對此「預設」ODBC 或類型系統 DSN 的任何其他 ODBC 的任何參考。我向內看HKEY_LOCAL_MACHINE >> 軟體 >> ODBC >> ODBC.INI,並且存在的所有內容都有一個預設註冊表項(名稱=(預設),而不是字串文字“預設”)。另外,在我自己的研究中,我看到提到了「ODBC 資料來源」鍵,該鍵應該出現在該登錄路徑中,但我根本沒有。
答案1
我可以透過重新建立註冊表值來刪除。然後我使用以下命令刪除了整個 ODBC%windir%\SysWOW64\odbcad32.exe圖形使用者介面客戶端。
為了重新建立註冊表值,我必須知道該去哪裡。在本例中,登錄路徑位於HKEY_LOCAL_MACHINE >> 軟體 >> Wow6432Node >> ODBC >> ODBC.INI >> ODBC 資料來源缺少一個值。我手動建立的值包含以下資訊:
- 名稱 = 預設
- 類型 = REG_SZ
- 資料 = SQL Server Native Client 10.0
建立此值後,32 位元 ODBC GUI 用戶端中會出現兩個名為「Default」的項目。當我刪除一個“預設”ODBC 後,它們都消失了!
我懷疑 ODBCINST.INI 中有一個“預設”鍵,因為我想我在刪除之前看到過一個鍵。現在那裡已經沒有人了。如果之前有,則使用上述 GUI 工具將其刪除。