MSDASQL 提供程序:用于 ODBC 驱动程序的 Microsoft OLE DB 提供程序

解决方案 »

  1.   

    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 建立连接。
      

  2.   

    此示例在 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;'
      

  3.   

    再给个例子:
    EXEC    sp_addlinkedserver    @server='xu', @srvproduct='',
                                    @provider='SQLOLEDB', @datasrc='192.168.10.215'实例用
    exec sp_addlinkedsrvlogin @rmtsrvname='xu',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='bestun1'
    select * from openquery(xu, 'select * from aaaa..abc')
      

  4.   

    那请问为什么我现在"查询分析器中用第一种方法'SQLOLEDB'建立的连接无法使用呢?select *  srv_lnk.test.dbo.inm_pur_m 输入上述的语句会出现无法访问或访问拒绝的错误.
      

  5.   

    还有请问服务器名怎样使用变量呢?declare  @MainServer char(20) , @MainDatabase char(20) select @MainServer=MSI_M_SERVER_C  , @MainDatabase  =MSI_M_DATABASE_C
    FROM dbo.INM_MAINSERVERINFO_M
    Exec sp_addlinkedserver @srvproduct=N'',@server='jmiserver',@provider='MSDASQL',@provstr='driver={SQL SERVER};
    server=@MainServer; uid=HXMFG;pwd=perfect888'上面使用 server=@MainServer 无法赋值.