作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 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/
我是一名优秀的程序员,十分优秀!