一个表操作比较麻烦点的问题(在线等待)
现有2个数据库
数据库DB1中的WRK;
cid cname cdeptID
0001 张三 0000001
0003 李四 0000004
......
BM表:
cid cname
0000001 材料科
.......
数据库DB2中的
DEPT表
id cid canme
1 0000001 材料科
2 0000002 财务科
3 0000004 行政科
.....
表employee
id cid cname departmentID
1 0001 张三 1
2 0003 李四 3
我已经将DB1中的BM导入到了DB2中的DEPT,表employee数据怎么导?在程序中用ADO组件怎么控制?
在数据库中我知道怎么实现
insert into employee(cid,cname,departmentID)
select a.cid,a.cname,b.id from DB1.WRK a
join
DB2.DEPT b
on
a.cdeptID=b.cnumber
问题点数:50、回复次数:4Top
1 楼78hgdong(赤脚)回复于 2005-07-02 08:58:18 得分 20
用存储过程控件ADOSTOREPROC控件,把
...
insert into employee(cid,cname,departmentID)
select a.cid,a.cname,b.id from DB1.WRK a
join
DB2.DEPT b
on
a.cdeptID=b.cnumber
...
写在存储过程里..后调用.
Top
2 楼yimibaer(别人笑我看不穿,我笑别人太疯癫)回复于 2005-07-02 09:06:32 得分 15
insert into employee(cid,cname,departmentID)
select a.cid,a.cname,b.id=(select d.Id from DB1.dbo.WRK c,Db2.dbo.Dept d where )
b.id=(select d.Id from DB1.dbo.WRK c,Db2.dbo.Dept d where c.cdeptID=d.cid )
from DB1.dbo.WRK a,Db2.dbo.Dept b
Top
3 楼yimibaer(别人笑我看不穿,我笑别人太疯癫)回复于 2005-07-02 09:10:36 得分 15
添加TADOquery 控件
with Adoquery1 do
begin
close;
sql.clear;
sql.add('insert into employee(cid,cname,departmentID)');
sql.add('select a.cid,a.cname,b.id=(select d.Id from DB1.dbo.WRK c,Db2.dbo.Dept d');
sql.add('where ) ');
sql.add('b.id=(select d.Id from DB1.dbo.WRK c,Db2.dbo.Dept d wherec.cdeptID=d.cid)');
sql.add('from DB1.dbo.WRK a,Db2.dbo.Dept b');
execsql;
end;
Top
4 楼zjh527()回复于 2005-07-02 13:04:27 得分 0
我忘说了DB1用的是MSDE,DB2用的是SQLServer这样操作能行吗?Top




