Delphi 字段查找和函数查找之间有什么区别?
性能是否有任何差异或其他差异,或者两者是相同的(根据TADOquery和TCustomADODataSet中的查找字段) 我已经阅读了帮助文件,但没有找到任何解释。查找()函数是Delphi 字段查找和函数查找之间有什么区别?,delphi,ado,Delphi,Ado,性能是否有任何差异或其他差异,或者两者是相同的(根据TADOquery和TCustomADODataSet中的查找字段) 我已经阅读了帮助文件,但没有找到任何解释。查找()函数是TDataSet的虚拟函数 作为一个虚拟函数,意味着实现可以随着类的变化而变化 因此,文档中的注释因每个TDataSet子代而异 让我们仔细看看: TDataSet的Lookup(): 实现从记录中检索字段值的虚拟方法 与指定的搜索值匹配的 看更多 注意文档末尾的这句话: 非单向的子类重写此方法,因此 它定位由 逗号
TDataSet
的虚拟函数
作为一个虚拟函数,意味着实现可以随着类的变化而变化
因此,文档中的注释因每个TDataSet
子代而异
让我们仔细看看:
的TDataSet
:Lookup()
的TCustomADODataSet
:Lookup()
的调用。
文件说:
从与指定搜索匹配的行中检索字段值
价值观
细节
现在,您只能通过深入了解源代码来理解差异。最后,您将注意到,没有任何区别。您将认识到,查找字段将只调用
lookup()
函数:
1.查找字段类似于计算字段。
- 受
属性影响(请参阅)AutoCalcFields
- fires
事件负责的功能相同 调用OnCalFields
CalcLookupValue
数据集也没有单向
字段。(见 )查找
Lookup
字段调用Lookup()
函数
- 在这方面,没有文档,您必须亲自查看:
程序TField.CalcLookupValue代码>
参数由Lookup()
属性填充:t字段
FLookupDataSet.Lookup(FLookupKeyFields, FDataSet.FieldValues[FKeyFields],flookuppresultfield)代码>
Lookup()
函数使用Lookup字段中的所有相关属性,如上所示:
- FKeyFields=TField.KeyFields
- FLookupDataSet=TField.lookUpdateSet
- FLookupKeyFields=TField.LookupKeyFields
- flookuppresltfield=TField.LookupResultField
Lookup()
是从查找字段调用以填充其值的函数。@pagenotfound,这不是答案吗?@pagenotfound在函数查找中,我可以放置键字段、键值和结果字段,但在查找字段中,我可以放置,例如,数据集。这就是引起我困惑的原因。