在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Delphi TDataSet.Locate函数 - 查询、定位 使用ADO等数据控件的时候,经常会用到 locate 函数,在结果数据集中查询和定位,下面介绍一下: 原型: function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; Locate 方法的3个参数: 1、KeyFields //字段名称。单一字段,直接传入字段名称。多个字段条件查寻,字段名称以分号分隔每一个字段名称,例如:‘A1;A2;A3’ 那么开发人员必须建立一个Variant数组,然后在这个数组中的每一个元素中指定条件数值,再传递Variant数组到这个参数中。至于Variant数组则可以使用VarArrayOf方法,或是使用VarArrayCreate方法来建立 例如:VarArrayOf( [ Name1,Name2 ] ) 3、TLocateOptions //查询选项标准。例如:不分大小写查寻字符串数据,或以部分字符串数值来查寻数据(模糊查询)。两个参数类型:
单独使用:
一起使用:
示例: Name1:= ADOQuery1.FieldbyName('A1').AsString; Name2:= ADOQuery1.FieldbyName('A2').AsString; ADOQuery1.Locate('A1', Name1, []); //精确查询 ADOQuery1.Locate('A1', Name1, [loPartialKey]); //模糊查询 ADOQuery1.Locate('A1', Name1, [loCaseInsensitive,loPartialKey]); //模糊查询,不区分大小写 ADOQuery1.Locate('A1;A2', VarArrayOf([Name1,Name2]), []); //多个数据一起查询,精确匹配 ADOQuery1.Locate('A1;A2', VarArrayOf([Name1,Name2]), [loCaseInsensitive]); //多个数据一起查询,不区分大小写 精确匹配 ADOQuery1.Locate('A1;A2', VarArrayOf([Name1,Name2]), [loPartialKey,loCaseInsensitive]); //多个数据一起查询,不区分大小写 模糊匹配
返回值: Locate 方法的回传数值是布尔值,表示是否成功找到了要查寻的数据。找到,就回传True,否则就回传False。 当成功地查寻到数据之后,它就会移动目前的记录位置到这个数据上,否则就会停留在Locate开始查寻之前的记录位置上。 注意:查寻数据的结果是一条数据,如果想查寻符合条件的一群数据,需使用 过滤器(Filter)功能。
作者有感: 一个简单的查询/定位 函数 网络上文章参差不齐,误导了很多人,修改和优化多次,认真实践和研读才能领会。
创建日期:2019.07.08 更新时间:2021.01.29 2021.02.22 2021.07.22
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论