使用VarArrayOf处理数据中的逗号

时间:2013-04-04 14:35:38

标签: delphi locate

我正在使用具有多个字段的Locate,有时我收到“搜索字段数不正确”错误,并将其跟踪到数据。

tbl.Locate('LName;FName;Stuff',
  VarArrayOf([LName+','+FName','+Stuff]),[loCaseInsensitive]);

有时候它有效,有时却没有,如果它在文中包含一个逗号,我会将它追溯到一个逗号中的逗号。

Stuff =“我的狗是灰色的”会起作用。

东西=“我在工作,但不开心”不会。额外的逗号让它看起来像四个数据字段。

我是否必须解析Commas的每个传入数据字符串,如果找到任何字符串,则将其替换为Locate工作的内容?包含的逗号版本将在没有解析或修改的情况下存储,因为我不知道它们可能输入了什么。 “我在工作,但不开心”是用户的有效输入。

感谢。

1 个答案:

答案 0 :(得分:6)

不要将所有搜索值连接成单个字符串。相反,将它们作为不同的项放在数组中,就像the example in the documentation一样。也就是说,不要在字符串中包含逗号:

tbl.Locate('LName;FName;Stuff',
  VarArrayOf([LName, FName, Stuff]), [loCaseInsensitive]);