可能導致 ODBC 連線報告未找到資料來源名稱的原因

可能導致 ODBC 連線報告未找到資料來源名稱的原因

我正在與一家小型企業合作,該企業使用基於 Access 的資料庫進行工單管理。該系統已經存在多年,他們有 6-7 台 PC,使用 ISV 的客製化軟體來存取資料庫。透過映射磁碟機 (Z:) 連線存取資料庫。

幾個月前,他們開始間歇性地收到此錯誤:

未找到資料來源名稱且未指定預設驅動程式

這導致 ISV 必須連接到資料庫並運行修復才能恢復資料庫。他們看到的錯誤更加具體,表明文件格式已損壞。支援技術表明該問題是由網路上的交易失敗引起的。為此我們嘗試了幾件事

  • 將資料庫移至不同的主機,以防原始「伺服器」PC 出現問題
  • 更換網路交換機
  • 開始將客戶端一一斷開網絡,試圖隔離有問題的孩子,但結果沒有一致

到目前為止,還沒有運氣。

我的問題 - 其中一台 PC 是否會關閉其驅動器映射並損壞打開的資料庫 - Windows 7 中是否有任何新功能可能會妨礙 - 您能否推薦一種更好的方法來隔離原因。

答案1

這幾乎肯定是 32 位元與 64 位元 DSN 問題。若要在 64 位元環境中使用 32 位元 DSN,請前往C:\Windows\SysWoW64\odbcad32.exe

我們的內部應用程式也有非常相似的限制。為了避免將來出現此問題,您可能需要安裝最新版本SQL Server 本機用戶端並透過群組原則在每台電腦上部署 32 位元和 64 位元 DSN。

答案2

如果使用 SUBST.exe 命令而不是「NET USE」對映驅動器,則與「NET USE」不同,當已對應的磁碟機遺失時,連線將始終重試。請記住,這樣做會使不了解 SUBST.exe 命令的人難以取消磁碟機對應。當驅動器以這種方式映射時,您不能只是將其與 Windows Exploder 斷開連接...這是行不通的。

就我個人而言,我同意這是64位的問題。

請記住,32 位元和 64 位元 ODBC DSN 控制面板雖然您希望它們以某種方式運作,但在某些情況下它們會執行相反的操作。例如:在 64 位元系統上嘗試新增 64 位元「使用者 DSN」時,您可能會注意到連線失敗,但使用「系統 DSN」則可以。這是因為 ODBC 面板實際上是在 64 位元 ODBC 控制面板的“用戶”標籤中產生“32 位元 DSN”,而它將在“系統”標籤中產生預期的 64 位元 DSN。只要您意識到控制面板可能無法按預期工作,我認為任何配置都不會難倒您。

相關內容