with ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from test');
prepared;
open;
end;因为TEST表有里100万条的记录,整个查询耗时10S,为了让用户知道查询正在进行中,想用个进度条来表示查询过程.
想用如下的形式做法,但找不到ADOQUERY1的记录数.
var i:integer;
begin
ProgressBar1.Min := 0;
ProgressBar1.Max := 10000;
for i:=1 to 10000 do
begin
ProgressBar1.Position := i;
end;
end;请指教.
begin
close;
sql.Clear;
sql.Add('select * from test');
prepared;
open;
end;因为TEST表有里100万条的记录,整个查询耗时10S,为了让用户知道查询正在进行中,想用个进度条来表示查询过程.
想用如下的形式做法,但找不到ADOQUERY1的记录数.
var i:integer;
begin
ProgressBar1.Min := 0;
ProgressBar1.Max := 10000;
for i:=1 to 10000 do
begin
ProgressBar1.Position := i;
end;
end;请指教.
try
Screen.Cursor := crSQLWait;
with ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from test');
prepared;
open;
end;
Screen.Cursor := crDefault;
except
Screen.Cursor := crDefault;
end;假如ADOQUERY1的数据太多,OPEN的时间太长,
比如有一个查询要用1分钟或更长,但用户觉得此时间太长,要求如果超过10S就"中断"查询.Q:
1,怎实现?
2,
已经
ADOQuery1.CommandTimeout := 3;
但查询超过3S时,程序没有异常;????
现在的问题是;假如ADOQUERY1的数据太多,OPEN的时间太长,
比如有一个查询要用1分钟或更长,但用户觉得此时间太长,要求如果超过10S就"中断"查询.
如果不是真的需要把所有的字段全部查询出来,*可以改成相应的字段就可以节约一点时间
我是想如果到了10S,ADOQUERY1还没有OPEN完的话,就"中断"返回.