首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi ADO查询

Delphi ADO查询
EN

Stack Overflow用户
提问于 2010-02-23 00:42:25
回答 6查看 24.9K关注 0票数 8

有没有比这更快的迭代ADO数据集的方法

代码语言:javascript
复制
while (not ADOQuery1.Eof) do
    begin
      /* Do something */
      ADOQuery1.Next;
    end;

我需要扫描大约9000个项目的数据集,并且只提取与预定义的一组分支编号匹配的记录。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-02-23 00:59:26

使用ADORecordset完成这类任务要快得多:

代码语言:javascript
复制
 while not ADOQuery1.Recordset.EOF do
  begin
    ADOQuery1.Recordset.MoveNext;
    // get value
    SomeVar := ADOQuery1.Recordset.Fields['FieldName'].Value;  
  end;
票数 7
EN

Stack Overflow用户

发布于 2010-02-23 01:23:33

如果不需要花时间更新与DataSet相关的可见控件,请确保使用DisableControls/EnableControls。

代码语言:javascript
复制
try
  ADOQuery1.DisableControls;
  while (not ADOQuery1.Eof) do
    begin
      /* Do something */
      ADOQuery1.Next;
    end;
finally
  ADOQuery1.EnableControls;
end;

致以问候。

票数 10
EN

Stack Overflow用户

发布于 2010-02-23 00:47:58

@Pieter,两个选项

1)您可以在执行之前修改sql语句,添加与预定义的分支编号集匹配的where条件。

2)使用TAdoQuery的Filter属性。

代码语言:javascript
复制
AdoQuery1.close;
AdoQuery1.filter := 'your condition goes here';
AdoQuery1.filtered := true;
AdoQuery1.Open;
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2312444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档