sql - 如何在Delphi中创建类似item1、item2、item3格式的SQL查询?

标签 sql delphi delphi-xe3

我在 Delphi 中使用 CheckListEdit 组件,它可以一次选择多个项目。当使用 CheckListEdit1.Text 提取时,我得到字符串格式的选定项目,如 [item1, item2, item3] ,我进一步修剪以丢弃第一个和最后一个字符,以获得最终字符串“item1, item2,项目3'。

我的代码如下

glist := CheckListEdit1.Text;
glistindex := Length(glist);
Delete(glist,glistindex,1);
Delete(glist,1,1);

//这里我得到 glist = 'item1, item2, item3..' 等等..

现在我想从表中的数据中进行选择,其中组如 item1、item2、item3 等。

我的SQL查询如下

UniTable1.SQL.Text := Select * from emp where group like (:grp);
UniTable1.Params.ParamByName('grp').Value := glist;

但是上面的 SQL 返回错误,因为“像 item1、item2、item3”不是正确的格式,是否有任何替代方法可以创建 SQL 查询,以便它从 CheckListEdit 中的选定组返回数据?

最佳答案

您需要将字符串构建为“(item1, item2, item3)”,而不是构建为“item1, item2, item3”。那么你的查询将变成

Select * from emp where group in (item1, item2, item3)

正如 whosrdaddy 所指出的,您必须将查询构建为连接字符串;无法将值列表作为参数传递。

关于sql - 如何在Delphi中创建类似item1、item2、item3格式的SQL查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20514539/

相关文章:

mysql - 如何使用SQL删除条件下字符串内的空格?

sql - PL/SQL代码中的 bool 变量声明和用法有什么问题?

delphi - ShowMessage隐藏

delphi - 更改可执行文件中的内部版本号

windows - 动态与静态 DLL 链接不同

Delphi XE3 文件未找到 GIFImage.dcu

mysql - SQL 查询中的多个 WHERE 子句

mysql - 如果另一列有多个值,如何选择按列分组的值

delphi - 关于在 Delphi 中分离数据访问、业务逻辑和 GUI 的任何建议

delphi - 如何处理 Synedit 表名上的链接?