呵呵 ,终于测试通过:Select top 1 * From OPENDATASOURCE('SQLOLEDB','Data Source=xyingsc01;User ID=1981;Password=852').ld.dbo.cpbm a Left Join OPENDATASOURCE('SQLOLEDB','Data Source=10.20.1.99;User ID=sa;Password=x3500').UFDATA_808_2012.dbo.Inventory b On a.产品编码 =b.cInvAddCode select top 1 * from openrowset( 'SQLOLEDB', 'xyingsc01'; '1981'; '852',ld.dbo.cpbm)a left join openrowset( 'SQLOLEDB', '10.20.1.99'; 'sa'; 'x3500',UFDATA_808_2012.dbo.Inventory)b On a.产品编码 = b.cInvAddCode 一定要到第三个方数据库连接的查询分析器里面执行,在语句里面涉及的任何一方查询分析器里面执行都报连接不到。
消息 17,级别 16,状态 1,第 1 行
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问。查询分析器连接到 【用友】的 返回成功,另外查询分析题返回上面消息
用友的还是生产的?
你本机是05还是2000
单独使用OPENDATASOURCE,也是首先要登录对应的数据库查询分析器,然后执行对应的的OPENDATASOURCE,可以成功,交换就不能成功,或放在一个查询分析器里面也不能成功
use master
select srvid,srvname,datasource from sysservers
-----------------------------------------------------------
srvid srvname datasource
1 M5002 D:\study\ASPNET\LUCKJADE\LuckJade.mdb
2 090220 F:\e\data\090220.mdb
3 ITSV XYINGSCXT
4 srv_lnk C900
就是需要在客户端电脑上使用OPENDATASOURCE去同时访问 【用友】和【生产系统】不成功啊,上面说单独访问成功,仅仅是为了排除单独语句的错误。
不要远程连接之后在访问
这样看是否成功
Left Join
OPENDATASOURCE('SQLOLEDB','Data Source=10.20.1.99;User ID=sa;Password=x3500').UFDATA_808_2012.dbo.Inventory b
On a.产品编码 =b.cInvAddCode
select top 1 * from openrowset( 'SQLOLEDB', 'xyingsc01'; '1981'; '852',ld.dbo.cpbm)a
left join
openrowset( 'SQLOLEDB', '10.20.1.99'; 'sa'; 'x3500',UFDATA_808_2012.dbo.Inventory)b
On a.产品编码 = b.cInvAddCode
一定要到第三个方数据库连接的查询分析器里面执行,在语句里面涉及的任何一方查询分析器里面执行都报连接不到。