如何对两个服务器上的数据库进行关联查询

sailorls 2002-08-05 09:12:34
数据库是sql server,A数据库位于X服务器上,B数据库位于Y服务器上,现在要查询A.dbo.table1,将数据插入B.sbo.table2,如何在delphi里实现?
...全文
118 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sailorls 2002-08-06
  • 打赏
  • 举报
回复
我找到了更好的方法
建立两个database:别名 dm1,dm2 分别指向A和B
建立一个query控件qry,databasename 为空
sql 语句这样写
with qry do
begin
close;
sql.clear;
sql.add('insert into ":dm1:table1" select * from ":dm2:table2" ');
execsql;
end;

已经调试成功,谢谢各位。
byc6352 2002-08-05
  • 打赏
  • 举报
回复
看我的代码:
(成功调试过)
function insertTable2:boolean;
begin
with q1 do//q1=adoquery1
begin
close;
sql.clear;
sql.add('select * from table1');
open;
end;
adoquery2.DataSource:=dm.DQ1;
adoconnection1.BeginTrans;//连接a.dbo.
adoconnection2.BeginTrans;//连接b.sbo.table2
try

adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('insert into table2 values(:ID,:Yh_ID,:Yh_Name,:Amonth,:Amm_Prior,:Amm_Cur,:ele,:Tran_Lose,:Cop_Lose,:Wire_Lose,:Sum_ele,:Price,:ele_Fee,:Benefit_Fee,:Latefee_Start,:Amm_Date,:Amm_Man,:Acroom_ID,:Lock,:Lock_Reason,:UpLoad_Is,:Remark)');
q1.First;
while not q1.Eof do
begin
adoquery2.ExecSQL;
q1.Edit;
q1.FieldByName('UpLoad_Is').AsBoolean:=true;
q1.Post;
q1.Next;
end;//while not q1.eof
q1.Close;
q1.Open;
adoconnection1.committrans;
adoconnection2.committrans;
result:=true;
except
adoconnection1.robacktrans;
adoconnection2.robacktrans;
result:=false;
showmessage('insert faulse');
exit;
end;//try
end;
tigerchina 2002-08-05
  • 打赏
  • 举报
回复
先将A的查询结果存在本地,再load到B
hellenlong 2002-08-05
  • 打赏
  • 举报
回复
一条条插入了

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧