dm1,dm2分别连的是各自库的表,要实现的是将一个表的东西倒入另一表,双循环时间太长,报库表定位不准确,库是sqlserver 2000,有没有好的方法?begin
dts_xm1.Close;
dts_xm1.CommandText:='select * from kt_shenbao_xiangmu where fzrsfzh in(select fzrsfzh from kt_shenbao_wrong where cond=''7'' and zgbmyj=''pass'')';
dts_xm1.open;
dts_xm2.open;
dts_xm1.First;
dts_xm2.First;
while not dts_xm1.Eof do
begin
i:=true;
dts_xm2.First;
while not dts_xm2.Eof do
begin
if (dts_xm1.FieldValues['fzrsfzh']<>dts_xm2.FieldValues['fzrsfzh'])then
dts_xm2.Next
else
begin
i:=false;
break;
end;
end; if (i=true) and (dts_xm2.Eof)then
begin
dts_xm2.Insert;
dts_xm2.FieldValues['xmbh']:=dts_xm1.FieldValues['xmbh'];
dts_xm2.FieldValues['xmgs_a']:=dts_xm1.FieldValues['xmgs_a'];
dts_xm2.FieldValues['xmgs_b']:=dts_xm1.FieldValues['xmgs_b'];
dts_xm2.FieldValues['xmgs_c1']:=dts_xm1.FieldValues['xmgs_c1'];
dts_xm2.FieldValues['xmgs_c2']:=dts_xm1.FieldValues['xmgs_c2'];
dts_xm2.FieldValues['xmgs_c3']:=dts_xm1.FieldValues['xmgs_c3'];
dts_xm2.FieldValues['xmgs_c4']:=dts_xm1.FieldValues['xmgs_c4'];
dts_xm2.FieldValues['xmgs_c5']:=dts_xm1.FieldValues['xmgs_c5'];
dts_xm2.FieldValues['xmgs_c6']:=dts_xm1.FieldValues['xmgs_c6'];
dts_xm2.FieldValues['byx_a']:=dts_xm1.FieldValues['byx_a'];
dts_xm2.FieldValues['byx_b']:=dts_xm1.FieldValues['byx_b'];
dts_xm2.FieldValues['byx_c']:=dts_xm1.FieldValues['byx_c'];
dts_xm2.FieldValues['yjnr_a']:=dts_xm1.FieldValues['yjnr_a'];
dts_xm2.FieldValues['yjnr_b']:=dts_xm1.FieldValues['yjnr_b'];
dts_xm2.FieldValues['yjnr_c']:=dts_xm1.FieldValues['yjnr_c'];
dts_xm2.FieldValues['jsfa_a']:=dts_xm1.FieldValues['jsfa_a'];
dts_xm2.FieldValues['jsfa_b']:=dts_xm1.FieldValues['jsfa_b'];
dts_xm2.FieldValues['xyfx_a']:=dts_xm1.FieldValues['xyfx_a'];
dts_xm2.FieldValues['xyfx_b']:=dts_xm1.FieldValues['xyfx_b'];
dts_xm2.FieldValues['tjjc_a1']:=dts_xm1.FieldValues['tjjc_a1'];
dts_xm2.FieldValues['tjjc_b']:=dts_xm1.FieldValues['tjjc_b'];
dts_xm2.FieldValues['tjjc_c']:=dts_xm1.FieldValues['tjjc_c'];
dts_xm2.FieldValues['jdjf']:=dts_xm1.FieldValues['jdjf'];
dts_xm2.FieldValues['clqd']:=dts_xm1.FieldValues['clqd'];
dts_xm2.FieldValues['sbdwyj']:=dts_xm1.FieldValues['sbdwyj'];
dts_xm2.FieldValues['xzbmyj']:=dts_xm1.FieldValues['xzbmyj'];
dts_xm2.FieldValues['zgdwyj']:=dts_xm1.FieldValues['zgdwyj'];
dts_xm2.FieldValues['ywcyj']:=dts_xm1.FieldValues['ywcyj'];
dts_xm2.FieldValues['shxy']:=dts_xm1.FieldValues['shxy'];
dts_xm2.FieldValues['fzrsfzh']:=dts_xm1.FieldValues['fzrsfzh'];
dts_xm2.FieldValues['result']:=dts_xm1.FieldValues['result'];
dts_xm2.FieldValues['zndm']:=dts_xm1.FieldValues['zndm'];
dts_xm2.FieldValues['xmmc']:=dts_xm1.FieldValues['xmmc'];
dts_xm2.FieldValues['cddw']:=dts_xm1.FieldValues['cddw'];
dts_xm2.FieldValues['judger']:=dts_xm1.FieldValues['judger'];
dts_xm2.FieldValues['judgeradvice']:=dts_xm1.FieldValues['judgeradvice'];
dts_xm2.FieldValues['judgesuccess']:=dts_xm1.FieldValues['judgesuccess'];
dts_xm2.FieldValues['judgefail']:=dts_xm1.FieldValues['judgefail']; dts_xm2.post;
end;
dts_xm1.next;
end;
dts_xm1.Close;
dts_xm2.Close;
end;
dts_xm1.Close;
dts_xm1.CommandText:='select * from kt_shenbao_xiangmu where fzrsfzh in(select fzrsfzh from kt_shenbao_wrong where cond=''7'' and zgbmyj=''pass'')';
dts_xm1.open;
dts_xm2.open;
dts_xm1.First;
dts_xm2.First;
while not dts_xm1.Eof do
begin
i:=true;
dts_xm2.First;
while not dts_xm2.Eof do
begin
if (dts_xm1.FieldValues['fzrsfzh']<>dts_xm2.FieldValues['fzrsfzh'])then
dts_xm2.Next
else
begin
i:=false;
break;
end;
end; if (i=true) and (dts_xm2.Eof)then
begin
dts_xm2.Insert;
dts_xm2.FieldValues['xmbh']:=dts_xm1.FieldValues['xmbh'];
dts_xm2.FieldValues['xmgs_a']:=dts_xm1.FieldValues['xmgs_a'];
dts_xm2.FieldValues['xmgs_b']:=dts_xm1.FieldValues['xmgs_b'];
dts_xm2.FieldValues['xmgs_c1']:=dts_xm1.FieldValues['xmgs_c1'];
dts_xm2.FieldValues['xmgs_c2']:=dts_xm1.FieldValues['xmgs_c2'];
dts_xm2.FieldValues['xmgs_c3']:=dts_xm1.FieldValues['xmgs_c3'];
dts_xm2.FieldValues['xmgs_c4']:=dts_xm1.FieldValues['xmgs_c4'];
dts_xm2.FieldValues['xmgs_c5']:=dts_xm1.FieldValues['xmgs_c5'];
dts_xm2.FieldValues['xmgs_c6']:=dts_xm1.FieldValues['xmgs_c6'];
dts_xm2.FieldValues['byx_a']:=dts_xm1.FieldValues['byx_a'];
dts_xm2.FieldValues['byx_b']:=dts_xm1.FieldValues['byx_b'];
dts_xm2.FieldValues['byx_c']:=dts_xm1.FieldValues['byx_c'];
dts_xm2.FieldValues['yjnr_a']:=dts_xm1.FieldValues['yjnr_a'];
dts_xm2.FieldValues['yjnr_b']:=dts_xm1.FieldValues['yjnr_b'];
dts_xm2.FieldValues['yjnr_c']:=dts_xm1.FieldValues['yjnr_c'];
dts_xm2.FieldValues['jsfa_a']:=dts_xm1.FieldValues['jsfa_a'];
dts_xm2.FieldValues['jsfa_b']:=dts_xm1.FieldValues['jsfa_b'];
dts_xm2.FieldValues['xyfx_a']:=dts_xm1.FieldValues['xyfx_a'];
dts_xm2.FieldValues['xyfx_b']:=dts_xm1.FieldValues['xyfx_b'];
dts_xm2.FieldValues['tjjc_a1']:=dts_xm1.FieldValues['tjjc_a1'];
dts_xm2.FieldValues['tjjc_b']:=dts_xm1.FieldValues['tjjc_b'];
dts_xm2.FieldValues['tjjc_c']:=dts_xm1.FieldValues['tjjc_c'];
dts_xm2.FieldValues['jdjf']:=dts_xm1.FieldValues['jdjf'];
dts_xm2.FieldValues['clqd']:=dts_xm1.FieldValues['clqd'];
dts_xm2.FieldValues['sbdwyj']:=dts_xm1.FieldValues['sbdwyj'];
dts_xm2.FieldValues['xzbmyj']:=dts_xm1.FieldValues['xzbmyj'];
dts_xm2.FieldValues['zgdwyj']:=dts_xm1.FieldValues['zgdwyj'];
dts_xm2.FieldValues['ywcyj']:=dts_xm1.FieldValues['ywcyj'];
dts_xm2.FieldValues['shxy']:=dts_xm1.FieldValues['shxy'];
dts_xm2.FieldValues['fzrsfzh']:=dts_xm1.FieldValues['fzrsfzh'];
dts_xm2.FieldValues['result']:=dts_xm1.FieldValues['result'];
dts_xm2.FieldValues['zndm']:=dts_xm1.FieldValues['zndm'];
dts_xm2.FieldValues['xmmc']:=dts_xm1.FieldValues['xmmc'];
dts_xm2.FieldValues['cddw']:=dts_xm1.FieldValues['cddw'];
dts_xm2.FieldValues['judger']:=dts_xm1.FieldValues['judger'];
dts_xm2.FieldValues['judgeradvice']:=dts_xm1.FieldValues['judgeradvice'];
dts_xm2.FieldValues['judgesuccess']:=dts_xm1.FieldValues['judgesuccess'];
dts_xm2.FieldValues['judgefail']:=dts_xm1.FieldValues['judgefail']; dts_xm2.post;
end;
dts_xm1.next;
end;
dts_xm1.Close;
dts_xm2.Close;
end;
好象可以用 Insert Into 表1 Valuse(所需字段)
(
Select 所需字段 From 表2
Where 条件
)
你一看就明白了.
存储过程好像更好些
没有你这样导表的;
-------------------------------------------------
www.nxit.net/bbs
愿于您一起交流
//建议新建一个视图 其数据就是dts_xm1所取得的数据 ,然后不是很容易就可以使用
INSERT INTO TABLE1
(FIELD1,FIELD2...)
SELECT FIELD1,FIELD2....
FROM TABLE2
WHERE ....
查询,具体你可以参考一下SQL SERVER 联机帮助