我正在使用具有多个字段的Locate,有时我收到“搜索字段数不正确”错误,并将其跟踪到数据。
tbl.Locate('LName;FName;Stuff',
VarArrayOf([LName+','+FName','+Stuff]),[loCaseInsensitive]);
有时候它有效,有时却没有,如果它在文中包含一个逗号,我会将它追溯到一个逗号中的逗号。
Stuff =“我的狗是灰色的”会起作用。
东西=“我在工作,但不开心”不会。额外的逗号让它看起来像四个数据字段。
我是否必须解析Commas的每个传入数据字符串,如果找到任何字符串,则将其替换为Locate工作的内容?包含的逗号版本将在没有解析或修改的情况下存储,因为我不知道它们可能输入了什么。 “我在工作,但不开心”是用户的有效输入。
感谢。
答案 0 :(得分:6)
不要将所有搜索值连接成单个字符串。相反,将它们作为不同的项放在数组中,就像the example in the documentation一样。也就是说,不要在字符串中包含逗号:
tbl.Locate('LName;FName;Stuff',
VarArrayOf([LName, FName, Stuff]), [loCaseInsensitive]);