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

不同数据库之间的表能不能联合查询呢?在线等
有两个数据库,一个sqlserver2000,一个oracle,这两个数据库中各有一个表的数据想显示在一个datagrid列表中,请问有没有办法联合查询呢?或者其实变通的办法?在线等,解决即结贴
例如:
[oracle]表tb1有以下字段:
=================================
uid         AA         BB         CC
------------------------
1           aaa         bbb       ccc
2           aaab       bbba     cccb

[Sql]表tb2有以下字段:
================================
mid       DD         EE
-------------------
1           ddd       eee

最后datagrid显示的列表:
ID       AA         BB         CC         DD         EE
-------------------------------------
1         aaa       bbb       ccc       ddd       eee
2         aaab     bbba     cccb

------解决方案--------------------
=================================
uid AA BB CC
------------------------
1 aaa bbb ccc
2 aaab bbba cccb

[Sql]表tb2有以下字段:
================================
mid DD EE
-------------------
1 ddd eee


这两个表也没有关联啊。。
------解决方案--------------------
1.
有办法, 即所谓的分布式查询

2.
在 Sql 中执行查询, 先执行系统存储过程 sp_addlinkedserver, 连接数据源, 连接oracle 使用 OleDb Provider for Oracle,
具体参考连接帮助文档

3.
在 Oracle 中执行查询, 先创建 dblink, 具体参考 oracle online document
------解决方案--------------------
可以,通过sp_addlinkedserver注删链接服务器

然后在sql语句调用前加上
select *
from UserServer.userInfo

UserServer为链接服务器
------解决方案--------------------
做过 本地存储过程执行另一服务器上的存储。
------解决方案--------------------
做链接服务器就可以了
------解决方案--------------------
http://www.ptpress.com.cn/books/Book_Information.asp?BID=13649

------解决方案--------------------
最简单的,分别连接两个数据库生成两个dataset,查询完以后,处理dataset。我做的是acess和sqlserver
------解决方案--------------------
wszhoho():请问,两个dataset之间怎么处理呢?
______________________
应该是在一个 DataSet 内, 通过在 DataTable 之间建立 DataRelation, 建立主外键关系,
但是效率相对低, 特别是数据量大的时候
------解决方案--------------------
在web程序中使用SQL系统存储过程 sp_addlinkedserver连接oracle数据库时,至少要安装oracle驱动。还要要考虑oracle的版本。
两个dataset之间怎么处理呢?可以把查询的两个结果表datatable放到dataset中,建立一个父子关系,或者新建一个包含所有字段的datatable,逐行把查询的两个结果表合并成一个表。
------解决方案--------------------
做人要厚道~~
------解决方案--------------------
1。
Jinglecat():你好,在web程序中使用SQL系统存储过程 sp_addlinkedserver连接oracle数据库时,SQL数据库的服务器是不是一定要装有oracle的客户端呢?
---------------
是的,安装对应版本的oracle客户端

2。
如果是建立DataRelation关系的,那怎样绑定要datagrid上呢?
----------------
仔细看了你的两张表,好像是一对一的关系,那么就不需要 DataRelation 了,直接遍历合并两张表,然后绑定