【发布时间】:2013-12-29 03:42:37
【问题描述】:
我在 Delphi 使用CheckListEdit 组件,它可以一次选择多个项目。当使用 CheckListEdit1.Text 提取时,我得到了字符串格式的选定项目,如 [item1, item2, item3],我进一步修剪以丢弃第一个和最后一个字符,得到最终字符串为 'item1, item2, item3'。
我的代码如下
glist := CheckListEdit1.Text;
glistindex := Length(glist);
Delete(glist,glistindex,1);
Delete(glist,1,1);
//这里我得到 glist = 'item1, item2, item3..' etc..
现在我想从表中的数据中进行选择,如 item1、item2、item3 等。
我的SQL查询如下
UniTable1.SQL.Text := Select * from emp where group like (:grp);
UniTable1.Params.ParamByName('grp').Value := glist;
但是上面的 SQL 返回错误,因为“like item1, item2, item3”不是正确的格式是否有任何替代方法来创建 SQL 查询,以便它将在 CheckListEdit 中从选定组返回数据?
【问题讨论】:
-
遗憾的是,这是您必须在不使用参数的情况下构建查询的情况之一......
-
Like 运算符不支持多个参数。我不认为 In 运算符会满足您的需求?
-
这里是one way来处理这个问题:
-
我不知道您正在使用的数据库组件,但请检查它们是否有宏
property。
标签: sql delphi delphi-xe3