Delphi 中使用SQL语句的问题。
delphi中放置checkbox1到checkbox6,任意勾选之后跑取SQL语句,但是SQL里的条件都是or的关系。比如select*fromtable1where1...
delphi中放置checkbox1 到 checkbox6 ,任意勾选之后跑取SQL语句,但是SQL里的条件都是 or 的关系。比如
select * from table1 where 1=1
and (字段1=abc checkbox1
or 字段2=123 checkbox2
or 字段3=456 checkbox3
or 字段4=567 checkbox4
or 字段5=789 checkbox5
or 字段6=YYY) checkbox6
问题来了,用户先勾选什么并不知道,所以上面那个 and 和 or之间很难处理。大家应该能明白我的意思吧!
这样子要如何可以完整拼出一个SQL语句呢?
还要考虑当checkbox 的某一个被去掉 勾选的时候的SQL语句。你有方案吗? 展开
select * from table1 where 1=1
and (字段1=abc checkbox1
or 字段2=123 checkbox2
or 字段3=456 checkbox3
or 字段4=567 checkbox4
or 字段5=789 checkbox5
or 字段6=YYY) checkbox6
问题来了,用户先勾选什么并不知道,所以上面那个 and 和 or之间很难处理。大家应该能明白我的意思吧!
这样子要如何可以完整拼出一个SQL语句呢?
还要考虑当checkbox 的某一个被去掉 勾选的时候的SQL语句。你有方案吗? 展开
1个回答
展开全部
pascal语法忘记了,大致意思
i=0 #确定是否为第一个被check的字段
sql=select * from table1 where 1=1
if checkbox1.checked then
i=1
sql=sql + " and ( 字段1=abc"
end if
if checkbox2.checked
if i=0 then
i=1
sql=sql + " and ( 字段2=123"
else
sql=sql + " or 字段2=123"
end if
if checkbox3.checked
if i=0 then
i=1
sql=sql + " and ( 字段3=456"
else
sql=sql + " or 字段3=456"
end if
if i=1 then
sql=sql + " )"
end if
i=0 #确定是否为第一个被check的字段
sql=select * from table1 where 1=1
if checkbox1.checked then
i=1
sql=sql + " and ( 字段1=abc"
end if
if checkbox2.checked
if i=0 then
i=1
sql=sql + " and ( 字段2=123"
else
sql=sql + " or 字段2=123"
end if
if checkbox3.checked
if i=0 then
i=1
sql=sql + " and ( 字段3=456"
else
sql=sql + " or 字段3=456"
end if
if i=1 then
sql=sql + " )"
end if
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询