关于超想
本站导航
邮件列表
  首页 | 本站产品 | Delphi资料 | 免费资源 | 程序人生 | 软件工程 | 网站设计 | 推荐网站
你所在的位置 -> 主页 -> 超想软件 -> 编程资料 -> delphi -> 开发技巧 -> 数据库-SQL ->详细
相关内容  
 
 
在Delphi程序中应用IE浏览器控件
 
【新品推荐】

  详细内容
 

关于在DELPHI5中进行多重查询的编程
作者: 评价: 上站日期: 2001-06-29
内容说明:
来源:

  本人在为单位编写一个投递邮件登单程序时,设计了一个多重查询,把它拿出来和大家共同研究,望能对设计数据库查询的网友们有点帮助。

一、建立一窗体form1,放入控件:combobox1,combobox2,combobox3,分别命名为:cmb21,cmb22,cmb23,并放入相应的三个标签:label1,label2,label3;再放入button1,button2两个按钮用来执行查询和清除查询条件,再放入query1,dbgrid1,datasource1数据库控件,设置好对应的数据库。(这里以一个DBF数据库YJBAK为例)

二、编写代码:

1、 对cmb21,cmb22赋初值:
cmb21.items的属性中加入:
邮件号码、收寄局名、投递日期、投递段道、大宗用户、封发人员
cmb22.items的属性中加入:
> 、< 、> =、< =、=、< > 等值

2、申明全局变量
var selid:integer;//查询状态标识变量
sel:string;//查询语句变量

3、窗体激活时,初始化查询状态标识。(用以标识是否做过查询,初始值为未做查询)
procedure TForm1. FormActivate(Sender: TObject);
begin
selid:=0;
end;

4、执行查询按钮代码
procedure TForm1.Button1Click(Sender: TObject);
var
tj:string;//查询条件变量
begin
//获取选择的条件名对应的数据库字段名
if cmb21.text='邮件号码' then
tj:='yjhm';
if cmb21.text='收寄局名' then
tj:='sjjm';
if cmb21.text='投递日期' then
tj:='ffrq';
if cmb21.text='投递段道' then
tj:='tdddm';
if cmb21.text='大宗用户' then
tj:='dzyhm';
if cmb21.text='封发人员' then
tj:='ffry';
//判断是否是第一次查询
if selid=0 then
begin
sel:='select * from yjbak where '+tj+cmb22.text+'"'+cmb23.text+'"';
selid:=1;
end
//第二次查询时,条件后加AND,并加上相应的条件及值
else
sel:=sel+' and '+tj+cmb22.text+'"'+cmb23.text+'"';
query1.close;
query1.SQL.Clear;
//判断条件值是否为空
if cmb23.text< > '' then
query1.SQL.Add(sel)
//条件值为空时查询所有的值
else
query1.sql.add('select * from yjbak');
query1.open;
end;

5、清除查询条件按钮,初始化查询语句,清除查询条件
procedure TForm1.Button2Click(Sender: TObject);
begin
query1.close;
query1.sql.Clear;
selid:=0;
end;

6、条件选择框值变动时,做相应处理。
  当选择条件时,对条件对应的值的选择框赋初值,这里以"段道"为例,也可以建立起数据字典,对查询条件值取数据库中的值。
procedure TForm1.cmb21Change(Sender: TObject);
var i:integer;
begin
if cmb21.text='投递段道' then
begin
for i:=1 to 10 do
cmb23.items.Add('投递'+inttostr(i)+'段');
end
else
cmb23.Items.Clear;
end;
   

  以上的多重查询是多次筛选式的查询,如果要加入并列式的查询,SQL语句条件之间用OR连接,还可加入一条件选项,即筛选式查询(AND)和并列式查询(OR)选择,如果这样,以上程序的功能就更丰富了。由于我所编写的这个程序不设汲此方面功能,因此没有把此项功能考虑进去。
  程序在DELPHI5、WINDOWS98下运行。

 
你所在的位置 -> 主页 -> 超想软件 -> 编程资料 -> delphi -> 开发技巧 -> 数据库-SQL ->详细
  首页 | 本站产品 | Delphi资料 | 免费资源 | 程序人生 | 软件工程 | 网站设计 | 推荐网站
声明:本站内容除注明原创以外均从网上摘抄,如有侵权请指明。
  如果您对我们的网站有什么意见或者建议,请与我们联系
powered by 建站易上手- V2.0