doevent一般放在主循环里的,每次循环执行一下,免得主循环占用太多,让‘取消’键派不上用场,确实用application.ProcessMessages 可以代替doevent,但是我发现其实多线程应当更好 不过用多线程执行ADO总报错,不知为什么,请诸位大虾再给瞧瞧看看,先谢了 代码: procedure TForm1.Button1Click(Sender: TObject); begin ThTest:=ttest.Create(AdoQuery1); end;constructor ttest.Create(ADOQ: TADOQuery); begin ADOQuery:=ADOQ; inherited create(false); end;procedure ttest.Execute; beginadoquery.SQL.Text:='select sum([Interval]) from Recordtab '; adoquery.Open;//在此出错 if not (adoquery.Eof and adoquery.Bof) then begin adoquery.Recordset.MoveFirst; GetVal:=adoQuery.Recordset.Fields[0].value; end;end; 主要是执行一个SQL汇总,用ADO调用MDB数据库
不过用多线程执行ADO总报错,不知为什么,请诸位大虾再给瞧瞧看看,先谢了
代码:
procedure TForm1.Button1Click(Sender: TObject);
begin ThTest:=ttest.Create(AdoQuery1);
end;constructor ttest.Create(ADOQ: TADOQuery);
begin
ADOQuery:=ADOQ;
inherited create(false);
end;procedure ttest.Execute;
beginadoquery.SQL.Text:='select sum([Interval]) from Recordtab ';
adoquery.Open;//在此出错
if not (adoquery.Eof and adoquery.Bof) then
begin
adoquery.Recordset.MoveFirst;
GetVal:=adoQuery.Recordset.Fields[0].value;
end;end;
主要是执行一个SQL汇总,用ADO调用MDB数据库