日期:2014-05-18  浏览次数:20597 次

请教无法建立远程连接问题

exec   sp_addlinkedserver     'srv_lnk ', ' ', 'SQLOLEDB ', 'oc_china '
exec   sp_addlinkedsrvlogin   'srv_lnk ', 'false ',null, 'sa ', '12345 '


Exec   sp_addlinkedserver   @srvproduct=N ' ',@server= 'srv_lnk ',@provider= 'MSDASQL ',@provstr= 'driver={SQL   SERVER};server=oc_china;uid=sa;pwd=12345


在查询分析器中使用第一种方法 'SQLOLEDB '建立的连接会出现无法访问的情况,
而用第二种方法 'MSDASQL '   则可以顺利访问,请问是什么原因呢?

------解决方案--------------------
帮顶哈子

------解决方案--------------------
MSDASQL 提供程序:用于 ODBC 驱动程序的 Microsoft OLE DB 提供程序
------解决方案--------------------
1)连接 SQLOLEDB 客户端
SQLOLEDB 是 SQL Server 的本机 OLE DB 提供程序,它为那些想访问一个或更多 SQL Server 实例上的数据的使用者表现接口。使用 SQLOLEDB 使您得以开发出为 SQL Server 数据库进行优化的 OLE DB 使用者。与用于 ODBC 的 Microsoft OLE DB 提供程序(该程序可从许多遵从 OLE DB 的 ODBC 应用程序访问数据)不同,只能使用 SQLOLEDB。不能使用 ODBC SQL Server 数据源名 (DSN) 中的信息进行连接。

通过用于 SQL Server 的 Microsoft OLE DB 提供程序设置客户端时,客户端应提供必需的连接特性,并且提示输入连接数据,或者从保存在持续文件中的 OLE DB 数据源中提供该数据。

2)连接用于 ODBC 客户端的 OLE DB 提供程序
通过用于 ODBC 的 Microsoft OLE DB,可以使用单个 OLE DB 提供程序连接到多个 ODBC 数据源,其中包括 SQL Server。然而,与用于 SQL Server 的本机 Microsoft OLE DB 提供程序相比,通过此提供程序连接到 SQL Server 客户端需要更大的管理开销。

通常情况下,当通过用于 ODBC 的 Microsoft OLE DB 提供程序连接到 SQL Server 实例时,所需信息通过 ODBC 数据源管理器创建并保存在 SQL Server ODBC DSN 中(作为用户、系统或文件 DSN)。因此,可以编写应用程序代码以使用 SQL Server DSN 建立连接。

------解决方案--------------------
此示例在 SQL Server 的实例上创建一台名为 S1_instance1 的链接服务器,
该服务器使用 SQL Server 的 Microsoft OLE DB 提供程序。

EXEC sp_addlinkedserver @server= 'S1_instance1 ', @srvproduct= ' ',
@provider= 'SQLOLEDB ', @datasrc= 'S1\instance1 '
实例用户名
EXEC sp_addlinkedserver 'xiaoming ', ' ', 'MSDASQL ',NULL,NULL, 'DRIVER={SQL

Server};SERVER=192.168.0.1;UID=sa;PWD=123; '