如何实现条件查询?(50分)

  • 主题发起人 主题发起人 www3
  • 开始时间 开始时间
W

www3

Unregistered / Unconfirmed
GUEST, unregistred user!
对表中各字段、各时间段按条件进行查询,得到满足条件的查询结果,有何办法????
 
各位大师我初学D,请多指教!!!!!!!!!!1
 
没看懂。
 
意思就是对输入的信息进行分类查询!!!!!!11
 
每个字段对应一组 groupbox , radiobutton
根据radiobutton 的选择,组成sql语句的查询条件
 
对你的数据集过滤,用Filter或SQL语句,这样显示的数据就按类显示
 
select * from XXXXX where name='delphisnail'
 
先让他输入查询条件,比如性别,年龄,所在城市,然后用sql语句写出来,
select * form 表名 where (sex='女')and(age='20')and(city='南京')
在query中执行这个语句,就会返回符合 条件的记录。
 
用SQL动态查询
1.mainform
procedure TCxForm.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
begin
Application.CreateForm(TByNameForm,ByNameForm);
ByValidForm.showmodal;
end;
......
procedure TCxForm.BitBtn1Click(Sender: TObject);
var
strfilter: string;
begin
strfilter:='';
if checkbox1.Checked then
strfilter:=strfilter+StrName;
if checkbox2.Checked then
strfilter:=strfilter+StrAge;
Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM "test.DB" test');
Query1.SQL.Add(' where ');
Query1.SQL.Add(strfilter);
try
try
Query1.Open
Except
Query1.ExecSQL
end;
except
showmessage('查询条件错误');
end;
......
2.nameform
......
var
ByNameForm: TByNameForm;
StrName:string;
implementation
{$R *.DFM}
procedure TByNameForm.BitBtn1Click(Sender: TObject);
begin
StrName:='';
StrName:= 'Name like ''%'+edit1.Text+'%''';
end;
end.

注意:多个条件的查询 !
 
可以在form上放一个RadioGroup控件,在items中添加一些选项
procedure form1.onbitbtn1click(sender)
var s:string;
begin
query1.close;
s:='select a.*,b.* from mytable1 a,mytable2 b where a.bh=b.bh';
case RadioGroup1.itemindex of
0:begin
s:=s+' and a.field1='''+trim(edit1.text)+'''';
//or s:=s+' and field1 like '''+trim(edit1.text)+''''+'%'
end;
1:begin
s:=s+' and a.field2=:rq';
end;
......
end;
try
query1.sql.add(s);
query1.parambyname('???').as???=???;
//???表示自己要用到的参数
query1.open;
except
on e:exceptiondo
showmessage('打开数据库出错!'+#13+#13+e.message);
end;

end;

主要是多加判断。
 
张剑波 和 Athlon_Chen说的没错,我就是这样根据查询条件来动态生成SQL 语句。
还有问题吗?
 
多人接受答案了。
 
后退
顶部