pb连接多个数据库 问题2
[img=http://hi.csdn.net/p_w_upload/201111/10/9961176_1320903496H8h9.png][/img][img=http://hi.csdn.net/p_w_upload/201111/10/9961176_1320903496H8h9.png][/img]
用了yyoinge大哥的方法从远程数据源提取数据
[code=SQL]
CREATE VIEW dbo.view_report_mrecords
AS
select a.*,
b.search_no
from a
left join
( select * from openrowset
( 'SQLOLEDB ', '10.3.8.6 '; 'user '; '123 ',purchase.dbo.output_warehouse)
) as b on a.outwarehouseid = b.id
[/code]
数据库是sql2000,表a是当前服务器中的表,表tb是另外一个服务器(10.3.8.6)的purchase数据库中的表,
在查询分析器里语句通过,在数据窗口中的datasource调用的是上面的语句,在数据窗口界面里retrieve也有数据,但在登陆系统后,进入系统界面就弹出这问题。
原帖地址:[url=http://topic.csdn.net/u/20111108/10/c5ef0790-d21f-448f-979f-a7412bf9cb3e.html?12573]传送门
[/url]
------解决方案--------------------------------------------------------
SQL需要开启分布式事务,至于怎样打开,你自己百度一下吧,我也没有弄过
------解决方案--------------------------------------------------------
先在主数据库里搞个临时表,把别的服务器上的数据读写过来到该临时表后,再做连接查询。
------解决方案--------------------------------------------------------
我这里用sp_addlinkedserver我方式注册远程数据库,再通过在本地库建立一个视图,查询远程库的数据,如果想进一步提高效率,可以设立事务定时把视图数据传入本地一个新表中,在PB中操纵的都是本地库,但这种方式只能是查询远程库,如果要修改两个库资料PB中建立两个TRAN可能效果更好些。
根据你所说的问题,既然查询分析器里能够得到数据,应该不会是yyoinge所提到的原因引起的,建议换成ODBC连接方式试试,OLEDB貌似有时连接出现问题或部分功能不能用。
转载于:https://blog.51cto.com/210683/968537