头油味重是什么原因:Delphi中使用sql多条件查询问题,单条件查询已实现

来源:百度文库 编辑:神马品牌网 时间:2024/04/27 01:21:38
这是个员工资料的添加删除修改查询界面
已完成对输入员工编号的查询,本人希望能够同时对5个条件,比如员工共编号,姓名,部门,职务,性别进行查询,全为空时,showmessage('条件不能全为空')。也可以只输入其中两三个条件,有条件为空也允许。
期待高手给出源代码,分数可以追加
with query1 do

begin

close;
sql.Clear;
if((dbedit1.text)<>'') then
sql.Append('select* from T_employ where employ_id=:tt');
parambyname('tt').AsString:=dbedit1.Text;

prepare;
open;
dbedit1.Text:='';
dbedit2.Text:='';
dbcombobox1.text:='';
dbcombobox2.text:='';
dbcombobox3.text:='';
end;

tt是起什么作用的?
姓名,编号是dbedit ,其他三个是dbcombobox。
查询是个按钮,操作很简单,不是用户输入sql语句那种

tt是字段值,
简单的很,加我oicq:910660
给你解决
现在先给你写一小段
begin
if (edit1.text='') or (edit2.text='')or (edit3.text='') (edit4.text='')or (edit5.text='') then
begin
showmessage('不能为空');
exit;
end;

Var
SQLStr:String;
begin
if (dbedit1.text='') or (dbedit2.text='')or (dbedit3.text='') (dbedit4.text='')or (dbedit5.text='') then
begin
showmessage('五个查询条件不能同时为空!');
exit;
end;

SQLStr:='select* from T_employ where 1 = 1'

if dbedit1.text <> '' then
SQLStr := SQLStr + ' AND tt1 ='''+ dbedit1.text +''''
end

if dbedit2.text <> '' then
SQLStr := SQLStr + ' AND tt2 ='''+ dbedit2.text +''''
end

if dbedit3.text <> '' then
SQLStr := SQLStr + ' AND tt3 ='''+ dbedit3.text +''''
end

if dbedit4.text <> '' then
SQLStr := SQLStr + ' AND tt4 ='''+ dbedit4.text +''''
end

if dbedit5.text <> '' then
SQLStr := SQLStr + ' AND tt5 ='''+ dbedit5.text +''''
end

query1.Close;
query1.SQL.Clear;
query1.SQL.Add(SQLStr);
query1.Open;

end;