加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi – FieldByName.AsString – 良好的做??法

发布时间:2020-12-15 09:50:21 所属栏目:大数据 来源:网络整理
导读:我已经阅读了一篇博客文章(此时我找不到链接)作者说,分配局部变量比使用ADOQuery.FieldByName(‘…’)更快.asString或TSQLQuery.FieldByName (‘…’).asString,在解析包含数千条记录的整个查询时.我没有看到它们之间的区别 var aLocalField: TField;....aLo
我已经阅读了一篇博客文章(此时我找不到链接)作者说,分配局部变量比使用ADOQuery.FieldByName(‘…’)更快.asString或TSQLQuery.FieldByName (‘…’).asString,在解析包含数千条记录的整个查询时.我没有看到它们之间的区别

var aLocalField: TField;
....
aLocalField := ADOQuery.FieldByName('...');
..
ShowMessage(aLocalField.asString)

并直接使用

ShowMessage(ADOQuery.FieldByName('...').asString);

博客文章没有说明数据库类型或Delphi版本.这个解决方案是否与一个或另一个相关(我不是在谈论模糊/自定义数据库系统)?

解决方法

两者之间没有明显的性能差异.我希望你发现的是它们之间的区别

DataSet.First;
while not DataSet.Eof do
begin
  ProcessValue(DataSet.FieldByName('Field').AsString);
  DataSet.Next;
end;

Field := DataSet.FieldByName('Field');
DataSet.First;
while not DataSet.Eof do
begin
  ProcessValue(Field.AsString);
  DataSet.Next;
end;

如果是这样,后者更有效,因为FieldByName是一个(相对)慢的函数.如果您不需要多次调用它,请不要多次调用它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读