找回密碼
 註冊
搜索
查看: 7555|回復: 0

SQL Server 2008 x64 利用linked server方式連結 SQL Server 7 32bit

[複製鏈接]
發表於 2010-5-8 01:00:33 | 顯示全部樓層 |閱讀模式
如果Provider使用SQLOLEDB,在SQL Server 2005 x64是可以利用linked server方式連結SQL Server 7.0,但是到了SQL Server 2008 x64就會出現以下錯誤訊息:
連結伺服器 "xxx" 的 OLE DB 提供者 "SQLNCLI10" 傳回訊息 "由於預先登入失敗,所以用戶端無法建立連接"。
訊息 10054,層級 16,狀態 1,行 0
TCP 提供者: 遠端主機已強制關閉一個現存的連線。
連結伺服器 "xxx" 的 OLE DB 提供者 "SQLNCLI10" 傳回訊息 "用戶端無法建立連線"。
訊息 26,層級 16,狀態 1,行 0
用戶端無法建立連線,因為登入前的交握期間發現錯誤。常見原因包括用戶端嘗試連接到不支援的 SQL Server 版本、伺服器太忙而無法接受新連接,或伺服器有資源限制 (記憶體或允許的連線數上限)。

因為SQL Server 2005是使用SQLNCLI 9.0,而SQL Server 2008是使用SQLNCLI 10.0
* SQLNCLI (SQL Native Client 9.0 OLEDB Provider released with SQL Server 2005)
* SQLNCLI10 (SQL Native Client 10.0 OLEDB Provider Released with SQL Server 2008)

目前看到的解決方法是改用 MSDASQL (OLEDB Provider for ODBC) 方式連線:
方法1 - 利用ODBC管理員建立DSN連結SQL Server 7.0
* Use ODBC Administrator to create DSN that connects to SQL Server 7.0.
* Create a Linked Server and Choose MSDASQL and then connect to DSN that was created.
方法2 - 直接將provider string加在裡面即可使用 (測試確定可用)
  1. EXEC sp_addlinkedserver
  2.    @server = 'xxx',
  3.    @srvproduct = '',
  4.    @provider = 'MSDASQL',
  5.    @provstr = 'DRIVER={SQL Server};SERVER=192.168.1.100;UID=username;PWD=password;'
複製代碼
Reference: http://sqlbits.wordpress.com/200 ... and-sql-server-7-0/
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

Archiver|手機版|彩色筆小沛的知識庫

GMT+8, 2024-11-21 18:42 , Processed in 0.018836 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回復 返回頂部 返回列表