关于按多个值查询 ( 积分: 20 )

  • 主题发起人 主题发起人 admin2008
  • 开始时间 开始时间
A

admin2008

Unregistered / Unconfirmed
GUEST, unregistred user!
if radiobutton5.Checked then
SQLstr:=SQLstr+ ' AND 商品种类= '+QuotedStr(trim(listbox1.Items.Text));
如listbox有值 书 笔 本子 这三个值 当listbox值只有一个时上面那句就没有问题 当是三个值时就不行了,当然listbox的值是通过我手动加入的
listbox1.items.add(combobox2.text)
也就是查出商品种类是 书 笔 本子的记录
各位帮我看下 在这先谢了
 
你用listbox1.Items.text当然会出错。
应该是:listbox1.Itms
 
for i=0 to listbox1.Items.Count-1 do
SQLstr:=SQLstr+' AND 商品种类='+QuotedStr(trim(listbox1.Items));
这样也不行呀 都有错误
 
if radiobutton5.Checked then
begin
if listbox1.Items.count = 1 then
SQLstr:=SQLstr+ ' AND 商品种类= '+QuotedStr(trim(listbox1.Items.Text))
Else if listbox1.Items.count > 1 then
SQLstr:=SQLstr+ ' AND 商品种类 in ('+QuotedStr(trim(listbox1.Items.Text)) + ')';
end
 
select * from v_inhouse_find where (teshu=0 or teshu is null) and 入库日期>='2007-10-13'and 入库日期<='2007-12-12' AND 商品种类 in ('修
西药')
我试了 可是得到的SQL的结果是上面那样的 拿到查询分析器中不行 只有把
in ('修 西药') 改成 in ('修','西药')才可查询的到数据
若这样在程序中 SQLstr:=SQLstr+ ' AND 商品种类 in ('+QuotedStr(trim(listbox1.Items.Text)) + ')'; 这一句想了很久 不知咋办
 
呵呵,大伙说的不错了,最好还是使用循环处理,这样肯定是正确的
if listbox1.Items.Count>0 then
begin
for i=0 to listbox1.Items.Count-1 do
begin
if i=0 then
SQLstr:=SQLstr+' AND ( (商品种类='+QuotedStr(trim(listbox1.Items)) +')'
else
SQLstr:=SQLstr+' or ( 商品种类='+QuotedStr(trim(listbox1.Items))+')'
end
SQLstr:=SQLstr + ')';
end;
 
作如下改动!!!

if radiobutton5.Checked then
begin
if listbox1.Items.count = 1 then
SQLstr:=SQLstr+ ' AND 商品种类= '+QuotedStr(trim(listbox1.Items.CommaText))
Else if listbox1.Items.count > 1 then
SQLstr:=SQLstr+ ' AND 商品种类 in ('+QuotedStr(trim(listbox1.Items.CommaText)) + ')';
end
 
楼主 银雨辰 还是不行 最后得到的SQL语句到查询分析器中不行的 还是少了‘
就是这样的 in ('修','西药')
select * from v_inhouse_find where (teshu=0 or teshu is null) and 入库日期>='2007-10-13'and 入库日期<='2007-12-12' AND 商品种类 in ('修,西药')

楼主 wang0801 的方法 我也试了 通过了 先谢各位楼主了,现在看下楼主 银雨辰
的方法 应怎样改进吧
 
疏忽了 你的字段是字符!
对listbox1.Items.CommaText操作
把“,”替换成“ ',' ”
StringReplace(listbox1.Items.CommaText, ',', ''',''', [rfReplaceAll])
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部