主题:动态的添加SQL语句,就像百度那样多关键字查询
比如一个EDIT1.TEXT里面的字符串,根据逗号,分割字符串,然后根据分割的字符串一一添加到SQL语句中的WHERE 1=0后面,而且这个SQL语句后面还有1=1的各种条件,请教这个SQL语句改怎么写?分割的后的字符串又如何用循环添加到SQL语句里?
我的代码;
var
sql:string;
s1:TStringList;
j:string;
i:integer;
a,b:string;
begin
j:=edit2.Text;
s1:=split(j,',');
end;
with form4.ADOQuery1 do
begin
close;
sql.clear;
sql.add('select * from main where ('+a+') and ('+b+')');//a 和b 代表2种
不同的条件语句
的字符串
if edit2.text<>'' then
begin
for i:=0 to s1.Count-1 do //这里循环应当怎
么写?才能将每次
i的值作为条
件添加到上面的SQL语句a里面?
sql.add('1=0 or a=a+(工号=:s1[i])');
//
//parameters.parambyname('wid').value:=s1[i]; //
end;
if edit4.text<>'' then //这里又应当怎么写
才能动态的添
加到sql语句里的b里面?
begin
sql.add('and (班次=:banci)');
parameters.parambyname('banci').value:=edit4.text;
end;
我的代码;
var
sql:string;
s1:TStringList;
j:string;
i:integer;
a,b:string;
begin
j:=edit2.Text;
s1:=split(j,',');
end;
with form4.ADOQuery1 do
begin
close;
sql.clear;
sql.add('select * from main where ('+a+') and ('+b+')');//a 和b 代表2种
不同的条件语句
的字符串
if edit2.text<>'' then
begin
for i:=0 to s1.Count-1 do //这里循环应当怎
么写?才能将每次
i的值作为条
件添加到上面的SQL语句a里面?
sql.add('1=0 or a=a+(工号=:s1[i])');
//
//parameters.parambyname('wid').value:=s1[i]; //
end;
if edit4.text<>'' then //这里又应当怎么写
才能动态的添
加到sql语句里的b里面?
begin
sql.add('and (班次=:banci)');
parameters.parambyname('banci').value:=edit4.text;
end;