2017-06-05 99 views
1

我正在使用SQL Server 2016 Express,嘗試通過ODBC數據源連接到網絡上另一臺服務器上的Access數據庫。我查了一些教程,並嘗試了各種不同的方法,但無法使連接工作。最終,我似乎停留在此錯誤:SQL Server鏈接服務器到MS Access - DSN體系結構不匹配錯誤

[Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application (Microsoft SQL Server, Error: 7303)

爲了排除權限和網絡問題,我已經將數據庫複製到本地機器上嘗試創建一個測試連接。我已驗證Microsoft Access的安全設置爲OFF(表示沒有用戶名/密碼登錄)。我確保使用32位版本的ODBC數據源管理器(在Windows\SysWOW64\中),嘗試過SQL Server中的各種設置,甚至嘗試通過T-SQL代碼直接創建鏈接服務器,如下所示:

EXEC sp_addlinkedserver 
    @server = N'TESTLINK', 
    @provider = N'MSDASQL', 
    @srvproduct = N'', 
    @datasrc = N'TEST'; 

下面是我用的,試圖建立這種連接,在那裏我不斷收到此錯誤的當前設置:

ODBC Data Source

New Linked Server Dialog

Linked Server Security Settings

Error Message

請注意,我也嘗試過每一個新建鏈接服務器對話框的安全選項卡上的設置,但已收到錯誤每次。

如果有人有一個想法,我可能會錯過這裏,請讓我知道。

編輯:有一個類似的問題在這裏,但它是一個古老的線程,並高度評價答案是不成功的,我(我已經嘗試過):

The specified DSN contains an architecture mismatch between the Driver and Application. JAVA

關鍵要解決我的問題是,我需要專門下載Access ODBC驅動程序的64位版本,它可以在這裏下載:

https://www.microsoft.com/en-US/download/details.aspx?id=13255

+1

您是否看過[指定的DSN包含驅動程序和應用程序之間的架構不匹配。 JAVA](https://stackoverflow.com/questions/8895823/the-specified-dsn-contains-an-architecture-mismatch-between-the-driver-and-appli)? –

+1

如果SQL Server進程正在以64位的方式運行(看起來很可能),那麼它可能會想要與64位ODBC驅動程序進行通信。 –

+0

@GordThompson是的,這是64位的SQL Server。我們需要它是64位的。您是否在說我需要爲SQL Server安裝一些可以連接到32位ODBC驅動程序的東西?這是有道理的...我正在查找一些信息。 –

回答

1

如果SQL Server進程正在運行的64位(W這些日子似乎很有可能),那麼它需要安裝64位版本的Access數據庫引擎組件。他們可以下載here