网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
在Delphi中实现多重查询
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式
选条件"语句
with tjQuery,SQL do
begin Close;
Clear;
DatabaseName:=sTable.DatabaseName;
//设置Query1的别名
Add(‘Select * from ''+sTable.TableName);
end;
with tjTable do //查询(筛选)条件表
begin
if not Active then Open;
if IsEmpty
then begin
Application.MessageBox(‘未选择筛选条件!'',
‘确定'',MB_OK+MB_ICONEXCLAMATION);
Exit;
end;
tjQuery.SQL.Add(‘Where '');//含有筛选条件
sFilter:=‘''; //临时记录筛选条件
First;
for i:=0 to RecordCount-1 do
begin
sLj:=Fields.AsString; //逻辑关系AND,OR
//(字段名0>1实际值2)
sFilter:=sFilter+‘('';
sFilter:=sFilter+Fields[0].AsString+
Fields.AsString;
sFieldName:=Fields[0].AsString;
//取第1列的字段名
case Table1.FieldByName(sFieldName).DataType of
ftString: begin //字符型处理
sFilter:=sFilter+“”+Fields.AsString+“”
//第2列为关系
end;
ftFloat, //浮点型处理
ftAutoInc, //自增型
ftSmallInt, //短整型
ftInteger, //整型
ftCurrency: begin //货币型
sFilter:=sFilter+Fields.AsString;
end;
ftDate: begin //日期型处理
try
lsDate:=StrToDate(Fields.AsString);
sFilter:=sFilter+“”+FormatDateTime
(‘mm/dd/yyyy'',StrToDate(Fields.AsString))+“”;
except
Application.MessageBox(‘错误的日期格式!’,
‘确认'',MB_OK+MB_ICONSTOP);
Result:=false; //返回错误标志
break;
end;//try 日期格式判断
end;
//此处可增加对其他类型数据的处理
end;//case
sFilter:=sFilter+‘)'';
if sLj<>‘''
then begin
if RecNo<>RecordCount //且“非最后行"的记录
then sFilter:=sFilter+Fields.AsString;
//And|Or;
end
else break;
Next
end;
end; //not IsEmpty(筛选)非空
tjQuery.SQL.Add(sFilter); //保存查询条件
end; //处理筛选条件

----另外,需要进行如下说明:


Type

procedure MySetDBGrid(sTable:TTable;
tjDBGrid:TDBGrid);
function MyCreate_SQL(sTable,tjTable:
TTable;tjQuery:TQuery):boolean;
private
{ Private declarations }


----值得说明的是,⑴为简化程序,逻辑关系只提供了AND 和OR两种,但为了允许用户修改SQL语句,如:在多条件之间增加括号来改变运算顺序等,增加了Memo控件;⑵在实际系统中,为方便用户的操作,可增加几个Button(按钮),功能分别是对Table2的“增加”、“删除”,这样用户界面会更友好些。

----利用这种方法来设置查询,条件个数是无限制的,且在屏幕上不会占据太大的空间,程序员实现起来要简单得多了。

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号