Str : String;
Str := 'select * from table where 条件1';//条件1为一个绝对成立的条件,比如编号大于0什么的.
if Edit会议.text <>'' then Str := Str+ ' and ....';
if Edit姓名.text <>'' then Str := Str+ ' and ....';
......
Str := 'select * from table where 条件1';//条件1为一个绝对成立的条件,比如编号大于0什么的.
if Edit会议.text <>'' then Str := Str+ ' and ....';
if Edit姓名.text <>'' then Str := Str+ ' and ....';
......
解决方案 »
- delphi 如何获取网页上的XML文件,并取得相应的内容
- 为什么用showmodal调用的窗口中,调用adoquery1.refresh后会自动关闭?
- 关于用QReport打印的问题
- 如何任意展开treeview的任意一级节点?
- 如何实现下面的功能?
- Tstring与TStringList问题
- 如何取得注册表中nameserver的路径
- 大哥们快帮忙,怎样用SQL语句按Edit.text中的内容查询字段,急!!!!!!!!!!!!!!!!!!!!!!!!!
- 请教Webconnection连接远程数据库?急!
- Access reminder表中的时间比较,为何不能跳出提醒窗口?
- 我的數據庫怎麼連不上,誰有空1分鐘幫我看看????
- 有沒有人有空幫我解決兩維數組的定義......謝謝1!
hymc,xm:String;
rq1,rq2:TDatetime;
begin
hymc:=trim(hymc.text);
xm:=trim(xm.text);
rq1:=trim(rq1.text);
rq2:=trim(rq2.text);
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * from 表名 ');
if hymc<>'' then
begin
Query1.SQL.Add('Where 会议名称字段名=:hymc');
Query1.SQL.ParamByName('hymc').AsString:=hymc;
end;
if xm<>'' then
begin
Query1.SQL.Add(' and 姓名字段名=:xm');
Query1.SQL.ParamByName('xm').AsString:=xm;
end;
if rq1<>'' then
begin
Query1.SQL.Add(' and 日期1字段名=:rq1');
Query1.SQL.ParamByName('rq1').AsDateTime:=StringToDateTime(rq1);
end;
if rq2<>'' then
begin
Query1.SQL.Add(' and 日期2字段名=:rq1');
Query1.SQL.ParamByName('rq2').AsDateTime:=StringToDateTime(rq2);
end;
Query1.Open;
var
hymc,xm:String;
rq1,rq2:TDatetime;
flag:boolean;
beginflag:=false;
hymc:=trim(hymc.text);
xm:=trim(xm.text);
rq1:=trim(rq1.text);
rq2:=trim(rq2.text);Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * from 表名 ');
if hymc<>'' then
begin
Query1.SQL.Add('Where 会议名称字段名=:hymc');
Query1.SQL.ParamByName('hymc').AsString:=hymc;
falg:=true;
end;if xm<>'' then
begin
if flag then
Query1.SQL.Add(' and 姓名字段名=:xm')
else
Query1.SQL.Add('where 姓名字段名=:xm');
Query1.SQL.ParamByName('xm').AsString:=xm;
flag:=true;
end;if rq1<>'' then
begin
if flag then
Query1.SQL.Add(' and 日期1字段名=:rq1')
else
Query1.SQL.Add('where 日期1字段名=:rq1');
Query1.SQL.ParamByName('rq1').AsDateTime:=StringToDateTime(rq1);
flag:=true;
end;
if rq2<>'' then
begin
if flag then
Query1.SQL.Add(' and 日期2字段名=:rq1')
else
Query1.SQL.Add('where 日期2字段名=:rq1');
Query1.SQL.ParamByName('rq2').AsDateTime:=StringToDateTime(rq2);
end;
Query1.Open; end;
Str := 'select * from table where 条件1';//条件1为一个绝对成立的条件,比如编号大于0什么的.
if Edit会议.text <>'' then Str := Str+ ' and 会议名称='''+Edit会议.text+ '''';
if Edit姓名.text <>'' then Str := Str+ ' and 姓名='''+Edit姓名.text+ '''';
if 日期.text <>'' then Str := Str+ ' and 日期 between ......';
Query.SQL.Add(Str);
在DateTimePicker每个检索条件前面加个CheckBox做选择条件吧,如果没有选中,则不加条件,选中的话,加条件进去,不好吗?
如果你不用的话,可以在DateTimePicker的OnChange事件里面标记一个变量做是否加条件的选择,或者前一个时间设得很前,后一个时间很后,以便用户如果不改时间,也能查出全部.
方法太多啦,你看怎么好用怎么用吧.