用如下代码执行时,当执行到二十多条时就没响应了.
AdoQuery1.close;
AdoQuery1.sql.Clear;
AdoQuery1.sql.Add('select * from dezm');
AdoQuery1.open;
AdoQuery1.first;
while not AdoQuery1.eof do
begin
xh:=AdoQuery1.fieldbyname('zmid').AsString;
AdoQuery2.Close;
AdoQuery2.SQL.Clear;
AdoQuery2.SQL.Add('select * from dedj');
AdoQuery2.SQL.Add('where zmid='+xh+'');
AdoQuery2.Open;
if not AdoQuery2.Eof then
begin
AdoQuery1.edit;
AdoQuery1.fieldbyname('rg').AsFloat:=AdoQuery2.fieldbyname('rgf').AsFloat;
AdoQuery1.fieldbyname('cl').AsFloat:=AdoQuery2.fieldbyname('clf').AsFloat;
AdoQuery1.fieldbyname('jx').AsFloat:=AdoQuery2.fieldbyname('jxf').AsFloat;
AdoQuery1.fieldbyname('jj').AsFloat:=AdoQuery2.fieldbyname('rgf').AsFloat+AdoQuery2.fieldbyname('clf').AsFloat+AdoQuery2.fieldbyname('jxf').AsFloat;
AdoQuery1.post;
end;
AdoQuery1.next;
end;
AdoQuery1.close;
AdoQuery1.sql.Clear;
AdoQuery1.sql.Add('select * from dezm');
AdoQuery1.open;
AdoQuery1.first;
while not AdoQuery1.eof do
begin
xh:=AdoQuery1.fieldbyname('zmid').AsString;
AdoQuery2.Close;
AdoQuery2.SQL.Clear;
AdoQuery2.SQL.Add('select * from dedj');
AdoQuery2.SQL.Add('where zmid='+xh+'');
AdoQuery2.Open;
if not AdoQuery2.Eof then
begin
AdoQuery1.edit;
AdoQuery1.fieldbyname('rg').AsFloat:=AdoQuery2.fieldbyname('rgf').AsFloat;
AdoQuery1.fieldbyname('cl').AsFloat:=AdoQuery2.fieldbyname('clf').AsFloat;
AdoQuery1.fieldbyname('jx').AsFloat:=AdoQuery2.fieldbyname('jxf').AsFloat;
AdoQuery1.fieldbyname('jj').AsFloat:=AdoQuery2.fieldbyname('rgf').AsFloat+AdoQuery2.fieldbyname('clf').AsFloat+AdoQuery2.fieldbyname('jxf').AsFloat;
AdoQuery1.post;
end;
AdoQuery1.next;
end;
解决方案 »
- 急,ShellExecute的问题
- 请问Delphi中相当于C中的this指针的函数是什么???
- Socket错误:‘Asynchronous socket Error 10061’
- 本人接手一项无盘项目,各位能否提供点一些相关实用资料
- 高手请进来教一下新手吧!!
- 如何关闭一个form窗口,问题很弱智吧!等待中...
- ★★★★★注意:CSDN为庆祝国庆,特隆重推出“强行结贴”主题活动★★★★★
- if FieldByName('ID').AsInteger not in (2,5) then 这句话不对,谁知道怎么写
- Delphi打开更新程序关闭主程序更新
- 急急急!哪儿有POffice 97 or 2000下载????一开始下载就给分!!!!!
- 一个将DBGrid中的记录打印预览的问题!悬赏300分!
- 请问Combobox里怎么把TreeView放进去?我看到有些软件都有这个东东!!!
AdoQuery1.sql.Clear;
AdoQuery1.sql.Add('select * from dezm');
AdoQuery1.open;
AdoQuery1.first;
while not AdoQuery1.eof do
begin
xh:=AdoQuery1.fieldbyname('zmid').AsString;
AdoQuery2.Close;
AdoQuery2.SQL.Clear;
AdoQuery2.SQL.Add('select * from dedj');
AdoQuery2.SQL.Add('where zmid='+xh+'');
AdoQuery2.Open;
if not AdoQuery2.Eof then
begin
AdoQuery1.edit;
AdoQuery1.fieldbyname'rg').AsFloat:=AdoQuery2.fieldbyname'rgf').AsFloat;
AdoQuery1.fieldbyname('cl').AsFloat:=AdoQuery2.fieldbyname('clf').AsFloat;
AdoQuery1.fieldbyname('jx').AsFloat:=AdoQuery2.fieldbyname('jxf').AsFloat;
AdoQuery1.fieldbyname'jj').AsFloat:=AdoQuery2.fieldbyname'rgf').AsFloat+AdoQuery2.fieldbyname('clf').AsFloat+AdoQuery2.fieldbyname('jxf').AsFloat; AdoQuery1.post;
asoquery2.next;
end;
AdoQuery1.next;
end;
好像有问题吧,好像是把dedj表里的内容给了dezm,而不像你说的是合起来的。
我加了个adoQuery2.next还是不行.
AdoQuery1.sql.Clear;
AdoQuery1.sql.Add('select * from dezm');
AdoQuery1.open;
AdoQuery1.first;
while not AdoQuery1.eof do
begin
xh:=AdoQuery1.fieldbyname('zmid').AsString;
AdoQuery2.Close;
AdoQuery2.SQL.Clear;
AdoQuery2.SQL.Add('select * from dedj');
AdoQuery2.SQL.Add('where zmid='+xh+'');
AdoQuery2.Open;
adoquery2.first;
if not AdoQuery2.Eof then
begin
AdoQuery1.edit;
AdoQuery1.fieldbyname'rg').AsFloat:=AdoQuery2.fieldbyname'rgf').AsFloat;
AdoQuery1.fieldbyname('cl').AsFloat:=AdoQuery2.fieldbyname('clf').AsFloat;
AdoQuery1.fieldbyname('jx').AsFloat:=AdoQuery2.fieldbyname('jxf').AsFloat;
AdoQuery1.fieldbyname'jj').AsFloat:=AdoQuery2.fieldbyname'rgf').AsFloat+AdoQuery2.fieldbyname('clf').AsFloat+AdoQuery2.fieldbyname('jxf').AsFloat; AdoQuery1.post;
asoquery2.next;
end;
AdoQuery1.next;
end;
你看是不是少个adoquery2.first;
在执行1000条左右的时候加入
Application.ProcessMessages;
//测试的时候!一次添加10000条记录就会没有反应!
Application.ProcessMessages;
能够使程序继续执行
主从表的合并例:
表1 t1 t2 t3 t4 t5 表2 t3 t4 t5 合成表1 t1 t2 t3 t4 t5
a b c c d e a b c d e
a1 b1 c1 c1 d1 e1 a1 b1 c1 d1 e1
update table1 set t4=table2.t4,t5=talbe2.t5 from table2
where table1.t3=table2.t3//注意不要出现多对多的情况,你的例子中没有对Adoquery2进行循环,应该没有这中情况吧。
from dedj1 where dezm1.zmid=dedj1.zmid
上面语句怎会报错:
[Microsoft][ODBC Visual FoxPro Driver]Command contains unrecognized phrase/keyword.
是不是foxpro数据库不支持!