怎样通过DELPHI把SQL数据库A的表1数据插入到数据库B的表2当中?

我正在做的是一个数据集成系统,遇到了困难,希望得到大家的帮助,谢谢~

这个系统大概是这样:
用了一个PageControl,一共两个Page,两个ADOQuery,两个DataSource,ADOQuery1连接到SQL的数据库A的表1,ADOQuery2连接到SQL的数据库B的表2,DataSource1的数据集为ADOQuery1,DataSource2的数据集为ADOQuery2。

Page1有三个BitBtn,
1、点击BitBtn1,可以查询数据库A表1的更新情况,且用DBGrid1显示出更新的数据(已实现,用一个值为1的字段New来标志更新的数据,旧的数据该字段值为零,从而筛选出新的数据)
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select TA001,TA002,TA006 From MOCTA');
ADOQuery1.SQL.Add('Where New=1');
ADOQuery1.Open;
end;

2、点击BitBtn2,可以将这些数据更新到数据库B的表2的对应字段当中去,如将 数据库A 表MOCTA 中New=1的字段TA001的值插入到 数据库B 表job 中的wo_id字段。
这个我觉得是要用INSERT语句来写,但是不知道具体怎么写,想请教一下大家。。
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
ADOQuery2.SQL.Add('INSERT INTO job(wo_id)')
ADOQuery1.SQL.Add('Select TA001 From MOCTA')
ADOQuery2.SQL.Add('Where New=1')
end;
这是我自己写的,我知道不对,但不知道怎么写才是对的。

我是自学的,边学边做,学的也不是很系统,希望大家讲的详细一点,谢谢!

第1个回答  2009-05-11
呵呵,,其实这个时候你的AdoQuery已经有相应的值了,你可以循环取出来,循环插入到第二张表中即可!

var str,t1,t2,t3:String;
AdoQuery1.First;
while not (AdoQuery1.eof) do
begin
t1:=AdoQuery1.fields[0].AsString;
t2:=AdoQuery1.fields[1].AsString;
t3:=AdoQuery1.fields[2].AsString;
sql:='insert into job(wo_id) values'''+t1+'''';
AdoQuery2.sql.text:=sql;
AdoQuery2.ExecSQL;

Adoquery1.Next;
end;

注意一点的是Adoquery1的Fields属性中的值是按照它执行的sql来说的
Select TA001,TA002,TA006 From MOCTA

这里的话 Fields[0].AsString 就是TA001的值,以此类推。。本回答被提问者采纳
第2个回答  2009-05-11
点击BitBtn2,可以将这些数据更新到数据库B的表2的对应字段当中去,如将 数据库A 表MOCTA 中New=1的字段TA001的值插入到 数据库B 表job 中的wo_id字段。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网