Pie*_*Wyk 8 delphi ado dataset
有没有更快的方法来迭代ADO数据集而不是
while (not ADOQuery1.Eof) do
begin
/* Do something */
ADOQuery1.Next;
end;
Run Code Online (Sandbox Code Playgroud)
我需要扫描大约9000个项目的数据集,并且只提取与预定义的分支编号集匹配的记录.
Ger*_*lí- 10
如果没有花时间更新DataSet上关联的可见控件,请确保使用DisableControls/EnableControls.
try
ADOQuery1.DisableControls;
while (not ADOQuery1.Eof) do
begin
/* Do something */
ADOQuery1.Next;
end;
finally
ADOQuery1.EnableControls;
end;
Run Code Online (Sandbox Code Playgroud)
问候.
@Pieter,两个选项
1)您可以在执行之前修改您的sql语句,添加与预定义的分支号码集匹配的where条件.
2)使用TAdoQuery 的Filter属性.
AdoQuery1.close;
AdoQuery1.filter := 'your condition goes here';
AdoQuery1.filtered := true;
AdoQuery1.Open;
Run Code Online (Sandbox Code Playgroud)
将ADORecordset用于此类任务要快得多:
while not ADOQuery1.Recordset.EOF do
begin
ADOQuery1.Recordset.MoveNext;
// get value
SomeVar := ADOQuery1.Recordset.Fields['FieldName'].Value;
end;
Run Code Online (Sandbox Code Playgroud)