有五个EDIT控件为edit1,edit2,edit3,edit4,edit5分别代表5个查询项目输入.我在adoquery 中设置了5个param参数分别和五个edit控件的输入值关联.现在首先要确定EDIT控件内容是否为空,是则不对此项目查询,否则用SQL语句select * from where 对EDIT输入值进行复合查询,请问用什么算法能更简单?用IF嵌套实在是太麻烦!
...全文
696打赏收藏
求一复合查询的算法
有五个EDIT控件为edit1,edit2,edit3,edit4,edit5分别代表5个查询项目输入.我在adoquery 中设置了5个param参数分别和五个edit控件的输入值关联.现在首先要确定EDIT控件内容是否为空,是则不对此项目查询,否则用SQL语句select * from where 对EDIT输入值进行复合查询,请问用什么算法能更简单?用IF嵌套实在是太麻烦!
巧妙利用Tag值
var
i :integer;
设置每个Edit的tag值为1,2,3,4,5
for i:=0 to self.components.count-1 do
if self.components[i] is TEdit then
if (Self.Components[i] as TEdit).text<>'' then
case Self.components[i].tag of
1 : sql.add(format(' and field1=''%s''',[trim(edit1.text)]))
2 : sql.add(format(' and field2=''%s''',[trim(edit2.text)]))
...
5 : sql.add(format(' and field5=''%s''',[trim(edit5.text)]))