Windows-Server-2012

如何刪除此 ODBC?

  • May 18, 2014

我無法刪除系統 DSN 類型的特定 ODBC。我能夠在同一台伺服器上創建和刪除其他 ODBC 連接,但無法刪除特定的 ODBC(名稱 = 預設)。如果我嘗試將其重命名為“預設”以外的名稱,則會使用原始名稱“預設”創建一個新的系統 DSN,該名稱也具有相同的元數據,例如描述和伺服器 FQDN。

環境資訊:

  • 作業系統 = Windows Server 2012 標準 64 位

  • ODBC =

    • 名稱 = 預設
    • 平台 = 32 位
    • 驅動程序 = SQL Server Native Client 10.0
    • 類型 = 系統 DSN
  • 數據庫 = SQL Server 2008 R2 SP2(位於另一台伺服器上)

到目前為止我已經嘗試/學到了什麼:

  1. 我已嘗試使用“ODBC 數據源 32 位”(路徑 = %windir%\syswow64\odbcad32.exe)刪除此 ODBC。嘗試將其刪除後,我沒有收到錯誤消息,但 ODBC 仍然存在。我什至無法使用“ODBC 數據源 64 位”(路徑 = %windir%\system32\odbcad32.exe)看到這個 ODBC,儘管我能夠看到(但不能修改)其他使用它的 32 位 ODBC 64 位工具。
  2. 如果我在用於配置此“預設”ODBC 的工具中執行“測試數據源…”,它會成功並顯示“測試成功完成!”
  3. 此 ODBC 最初是與 Microsoft Dynamics GP 2010 一起使用的。當我啟動 GP 2010 以嘗試連接到此“預設”ODBC 時,它不能用作連接選項,儘管伺服器上的所有其他 ODBC 都可用。
  4. 我無法在系統資料庫中找到對此“預設”ODBC 或系統 DSN 類型的任何其他 ODBC 的任何引用。我查看了HKEY_LOCAL_MACHINE >> SOFTWARE >> ODBC >> ODBC.INI,所有存在的都有一個預設系統資料庫項(名稱=(預設),而不是字元串文字“預設”)。此外,在我自己的研究中,我已經看到提到應該出現在此系統資料庫路徑中的“ODBC 數據源”鍵,但我根本沒有。

我可以通過重新創建系統資料庫值來刪除。然後我使用%windir%\SysWOW64\odbcad32.exe GUI 客戶端刪除了整個 ODBC 。

為了重新創建系統資料庫值,我必須知道去哪裡。在這種情況下,HKEY_LOCAL_MACHINE >> SOFTWARE >> Wow6432Node >> ODBC >> ODBC.INI >> ODBC Data Sources處的系統資料庫路徑缺少值。我手動創建的值具有以下資訊:

  • 名稱 = 預設
  • 類型 = REG_SZ
  • 數據 = SQL Server Native Client 10.0

創建此值後,在 32 位 ODBC GUI 客戶端中顯示了兩個條目,名稱為“預設”。在我刪除了一個“預設”ODBC 後,它們都消失了!

我懷疑在 ODBCINST.INI 中有一個“預設”鍵,因為我想我在刪除之前看到了一個。現在那裡一個也沒有。如果之前有,則在上述過程中使用 GUI 工具將其刪除。

引用自:https://serverfault.com/questions/594337