我在网了打了一些,先看下:
来看:http://www.voidcn.com/article/p-oindvgyq-ry.html
- 一、使用?Microsoft?OLE?DB?Provider?For?ODBC?链接MySQL???
- 安装MySQL的ODBC驱动MyODBC??
- 1、为MySQL建立一个ODBC系统数据源,例如:选择数据库为test?,数据源名称为myDSN??
- 2、建立链接数据库??
- EXEC?sp_addlinkedserver?@server?=?’MySQLTest’,?@srvproduct=’MySQL’,??
- @provider?=?’MSDASQL’,?@datasrc?=?’myDSN’??
- GO??
- EXEC?sp_addlinkedsrvlogin??
- @rmtsrvname=’MySqlTest’,@useself=’false’,@locallogin=’sa’,@rmtuser=’mys??
- ql的用户名’,@rmtpassword=’mysql的密码’??
- 3、查询数据??
- SELECT?*?FROM?OPENQUERY?(MySQLTest?,’select?*?from?表’?)??
- 下面这个不行:??
- 注意:不能直接用select?*?from?链接服务器名.数据库名.用户名.表(或视图)??
- 四部分名称查询数据,可能是个Bug.??
- 二、使用?Microsoft?OLE?DB?Provider?For?ORACLE?链接ORACLE??
- 1、建立链接数据库??
- sp_addlinkedserver?’别名’,?’Oracle’,?’MSDAORA’,?’服务名’??
- GO??
- EXEC?sp_addlinkedsrvlogin?@rmtsrvname=’别名?’,@rmtuser=’oracle用户名?’,@rmtpassword=’密码’??
- 2、查询数据??
- SELECT?*?FROM?别名..用户名.表(视图)??
- 注意:四部分名称全部用大写??
- 3、执行存储过程??
- 使用OPENQUERY:??
- SELECT?*??
- FROM?OPENQUERY(别名,?’exec?用户名.存储过程名’)???
- ??????
- 三、设置链接服务器以访问格式化文本文件??
- 用于?Jet?的?Microsoft?OLE?DB?提供程序可用于访问并查询文本文件。??
- ???若要直接创建访问文本文件的链接服务器而不将文件链接为?Access?.mdb?文件中的表,请行?sp_addlinkedserver,如下例所示。??
- 提供程序是?Microsoft.Jet.OLEDB.4.0,提供程序字符串为"Text"。数据源是包含文本文件的目录的完整路径名称。?schema.ini?文件(描述文本文件的结构)必须与此文本文件存在于相同的目录中。有关创建?schema.ini?文件的更多信息,请参见?Jet?数据库引擎文档。??
- --Create?a?linked?server.??
- EXEC?sp_addlinkedserver?txtsrv,?’Jet?4.0’,248); line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> ’Microsoft.Jet.OLEDB.4.0’,??
- ’c:/data/distqry’,248); line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> NULL,108); list-style:decimal-leading-zero outside; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> ’Text’??
- --Set?up?login?mappings.??
- EXEC?sp_addlinkedsrvlogin?txtsrv,?FALSE,?NULL,?Admin,?NULL??
- --List?the?tables?in?the?linked?server.??
- EXEC?sp_tables_ex?txtsrv??
- --Query?one?of?the?tables:?file1#txt??
- --using?a?4-part?name.??
- FROM?txtsrv...[file1#txt]??
- ????四、链接SQL?Server服务器:???
- 1、使用?ODBC?的?Microsoft?OLE?DB?提供程序???
- EXEC?sp_addlinkedserver?’别名’,’’,’MSDASQL’,NULL,’DRIVER={SQL??Server};SERVER=远程名;UID=用户;PWD=密码;’???
- 如果加上参数@catalog,可以指定数据库???
- exec?sp_addlinkedsrvlogin?@rmtsrvname=’别名??’,@rmtuser=’sa’,@rmtpassword=’密码’???
- 2、使用SQL?Server?的?Microsoft?OLE?DB?提供程序???
- exec?sp_addlinkedserver?@server=’别名??’,@provider=’sqloledb’,@srvproduct=’’,@datasrc=’远程服务器名’???
- exec?sp_addlinkedsrvlogin???
- @rmtsrvname=’wzb’,@rmtp???
- assword=’密码’???
- 然后你就可以如下:???
- select?*?from?别名.库名.dbo.表名???
- insert?库名.dbo.表名?select?*?from?别名.库名.dbo.表名???
- select?*?into?库名.dbo.新表名?from?别名.库名.dbo.表名???
- go???
- 例1、???
- 此示例在?SQL?Server?的实例上创建一台名为?S1_instance1?的链接服务器,???
- 该服务器使用?SQL?Server?的?Microsoft?OLE?DB?提供程序。??EXEC?sp_addlinkedserver?@server=’S1_instance1’,?@srvproduct=’’,??@provider=’SQLOLEDB’,??@datasrc=’S1/instance1’???
- 例2、???
- --建立链接服务器???
- EXEC?sp_addlinkedserver?’xiaoming’,’DRIVER={SQL???
- Server};SERVER=192.168.0.1;UID=sa;PWD=123;’???
- --建立链接服务器登录映射???
- @rmtsrvname=’xiaoming’,???
- @rmtpassword=’123’???
- --查询数据???
- select?*?from?xiaoming.schooladmin.dbo.agent???
- --删除链接服务器登录映射和链接服务器:???
- exec?sp_droplinkedsrvlogin?’xiaoming’?,’sa’???
- exec?sp_dropserver?’xiaoming’???
- 注意事项:???
- SET?IDENTITY_INSERT?[?database.[?owner.]?]?{?table?}?{?ON?|?OFF?}???
- 所以不能通过连接服务器设置此属性???
- into?也存在这样的问题???
- select?*?into?xiaoming.northwind.dbo.tt?from???
- xiaoming.northwind.dbo.tt??
- 五、设置链接服务器以访问Access数据库??
- 使用用于?Jet?的?Microsoft?OLE?DB?提供程序??
- 此示例创建一台名为?test的链接服务器。??
- 说明?本示例假设已经安装?Microsoft?Access?和示例?Northwind?数据库,且??
- Northwind?数据库驻留在?C:/。??
- USE?master??
- --?To?use?named?parameters:??
- EXEC?sp_addlinkedserver??
- @server?=?’test’,108); list-style:decimal-leading-zero outside; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> @provider?=?’Microsoft.Jet.OLEDB.4.0’,248); line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> @srvproduct?=?’OLE?DB?Provider?for?Jet’,??
- @datasrc?=?’C:/Northwind.mdb’??
- --?OR?to?use?no?named?parameters:??
- EXEC?sp_addlinkedserver??
- ’test’,248); line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> ’OLE?DB?Provider? ’Microsoft.Jet.OLEDB.4.0’,248); line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> ’C:/Northwind.mdb’??
- 使用??
- select?*?from?test...表名??
- 六、连接SYBASE??
- --首先,你要在SQL服务器上装上访问sybase的客户端??
- --创建链接服务器??
- exec?sp_addlinkedserver?’Sybase1’,?’?’,?’MSDASQL’,?NULL??
- ,’Driver={Sybase?System??
- 11};Database=hisdb;Srvr=10.211.135.12;UID=sa;PWD=1111;’??
- 使用:??
- select?*?from?Sybase1.hisdb.dbo.table1??
- 方法二??
- 使用ODBC??
- SQL?Server到SYBASE连接服务器的实现??
- 作者:?CCBZZP??
- 本文的测试环境为:??
- 操作系统:?WINDOWS2000?SERVER?(繁体系统)??
- 安装数据库:?SQLSERVER2000(英文版)和SYBASE8.0客户端(英文版)??
- 具体实现步骤:??
- 1.要求pc机上安装SYBASE8.0客户端软件和sqlserver2000软件。??
- 2.配置windows的ODBC数据源:??
- 开始菜单—》程式集—》系统管理工具—》资料数据源(ODBC)—》进入配置用户DSN或者系统DSN均可以:添加—》选择?ADAPTIVE?SERVER?ANYWHERE8.0—》自定义数据源名称(随意如:?SYBASETEST)—》数据库名称(必选!)—》OK完成。??
- 3.?选择刚才配置的数据源名称,?再选择?配置,?跳出SYBASETEST?MESSAGES:??
- The?data?source?is?not?connected.?Connecting?to?the?data?source?will??
- provide?useful?information?during?configuration.?Would?you?like?to??
- connect?to?the?data?source???
- 选择YES(OK或确认)即可??
- 进入CONNECT?TO?SYBASE?DATABASE画面:??
- USER?ID:?输入SYBASE?DATABASE的用户??
- PASSWORD:?输入SYBASE?DATABASE的用户的密码??
- CONNECTION?MODE:?可以选择默认的SHARE模式??
- 选择OK(确认)即可!??
- 配置和测试ODBC完成!??
- 4.配置sqlserver2000中的连接服务器:??
- 企业管理器—》安全性—》连接服务器—》右键新建连接服务器—》定义连接名称;?选其他数据源;?指定程序名称为:SYBASE?ADAPTIVE?SERVER?ANYWHERE?PROVIDER8.0;?产品名称可不填;?数据源指定刚才ODBC中定义好的数据源名称;提供程序字符串按以下格式填写:User?ID=username;?Password=userpasswd(或者按如下格式:UID=username;PWD=userpasswd),这里的用户名和密码对应所要连接的SYBASE数据库中的用户名和密码?—》?安全性标签页里:设置用此安全上下文进行,并录入SYBASE的数据库用户名和密码—》服务器选项标签页可默认—》确定。??
- 5.准备工作全部完成!在sqlserver企业管理器—》安全性—》连接服务器打开刚建好的连接服务器—》点击表,即可在右边窗口看到该SYBASE数据库用户拥有的所有表名,但在这里还并不能查看表的记录,这个需要在sqserver的查询分析器中用具体sql实现!访问表时,使用格式为:?[连接服务器名]..[SYBASE用户].[表名]。
现在说下我的问题:
我在用sql来建立连接的时候(我连的是oracle的服务器),我用了我装在本地的oracle客户端,按照向导建立完了已后,在使用下面视图的时候就看到了一个问题:
(select *?from OPENQUERY(LINK_BIZ,'select ?* ?From cms.QX_SALDTL_V'))
错误:
服务器: 消息 7320,级别 16,状态 2,行 1 未能对 OLE DB 提供程序 'OraOLEDB.Oracle' 执行查询。 OLE DB 错误跟踪[OLE/DB Provider 'OraOLEDB.Oracle' ICommandText::Execute returned 0x80040155]。

是图就是出现错误时选择的连接方式
下面就提供一个正确的连接方式:

这们只要将上面的连接提供程序改为这个就行,其它的与上面的一样设置,现在我们再来执行上面的查询的时候就可以看到我们想要的结果了
最后要感谢给我提供帮助的朋友,感谢!
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|