delphi中有个locate函数,有个疑惑,不清楚他是全字匹配还是像数据库中的like

下面的范例程序代码即是以一个字段来查寻数据,它是以数据表的NAME字段来查寻拥有“李维”数值的这笔数据,由于最后一个参数是空集合,因此,这代表NAME字段必须拥有一模一样... 下面的范例程序代码即是以一个字段来查寻数据,它是以数据表的NAME字段来查寻拥有“李维”数值的这笔数据,由于最后一个参数是空集合,因此,这代表NAME字段必须拥有一模一样的“李维”这个数值才算查寻成功。
SQLClientDataSet.Locate('NAME', '李维' , []);

我知道像这样写是满足条件的-- locate('You','You',[]);

但是我不知道这样是不是满足条件-- locate('ForYouTou','You',[]);这个满足条件吗
展开
 我来答
windblast
2017-10-25 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13622
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部

Locate 的函数的原型定义如下:

function Locate(const KeyFields: String; const KeyValues:Variant;Options: TLocateOptions): Boolean;

其中,第3个参数定义如下:

TLocateOption = (loCaseInsensitive, loPartialKey);

loCaseInsensitive 表示查找数据不分大小写;loPartialKey 表示以部分字符串来查寻数据。

缺省情况下,即第3个参数为 [] 时,此时要求查找要与目标字符完全匹配。

因此,假设 Name 字段中有  ForYouTou 的记录时:

locate('Name','You',[]) 是查找不到该条记录的。

可以尝试使用以下代码:

tbl1.Locate('Name','*You',[loCaseInsensitive, loPartialKey]);
夜雪飘樱落
2018-04-14 · 超过23用户采纳过TA的回答
知道答主
回答量:98
采纳率:100%
帮助的人:46.8万
展开全部
loPartialKey 只能从头部匹配
关键字 哈啦
只能 查 哈啦开头的 值
而无法查到 哇哈拉
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cnsuyong
2013-12-30 · TA获得超过1075个赞
知道小有建树答主
回答量:767
采纳率:100%
帮助的人:436万
展开全部
试试就知道,不满足。
追问
我这没环境  不好试的 那上面的locate函数转为sql语句是:where  name=“李维”   而不是    where name like'%李维%'。
追答
Locate 不是 Like ,而是匹配定位。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式