转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
通用查询组件设计         ★★★★

通用查询组件设计

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2209 更新时间:2009/4/23 18:44:47

通用查询组件设计

作者:nxyc_twz@163.com

 

在当前的MIS系统中,数据维护与数据查询是其两个核心功能。如何设计一个通用的查询组件,使开发的MIS系统中具备统一的查询界面,是MIS系统开发人员一直在偿试解决的问题。笔者在多年的MIS系统的开发设计过程中,经过不断的摸索与实践,终于设计完成了这套相对比较完善、通用的查询组件。

 

该组件继承自Tcomponet组件,主要包括一个查询窗体及一个显示查询摘要的窗体。主要设计思路是通过设置Tquery组件的Params(参数)以达到通用查询的目的。关于如何设计自定义组件,请参考:创建定制组件

现将其设计思路与技巧公布出来,与广大编程爱好者共勉。定义通用查询类

 

在指定字符串中查找字符串

function WordPos(const AWord, AString: string): Integer;

//在指定字符串中查找字符串

var s: string;

    i, p: Integer;

begin

  s := '''' '''' + AnsiUpperCase(AString) + '''' '''';  //忽略大小写

  for i := 1 to Length(s) do if not (s[i] in Identifiers) then s[i] := '''' ''''; //常量定义

  p := Pos('''' '''' + AnsiUpperCase(AWord) + '''' '''', s);  

  Result := p;

end;

 

定义通用查询类

type

  TDBFilterDialog = class(TComponent)

  private

    FDialog : TMyDBFilterDialog;//查询窗体类

    FOriginalSQL : TStrings;//原来的SQL语句

    FModifiedSQL : TStrings;//修改后的SQL语句

    FDataSet : TQuery;//数据集

    FDefaultMatchType : TDBFilterMatchType;//过滤类型

    FOptions : TDBOptions;//过滤选项

    FCaption: String;//窗体标题

    FFields: TStringList;//字段列表

    FOriginalVariables : TList;//变量列表

    SQLProp : String;//SQL属性

    procedure SetDataSet(const Value: TQuery);//设置数据集

    procedure SetOptions(const Value: TDBOptions);//设置选项

    procedure SetCaption(const Value: String);//设置标题

    procedure SetDefaultMatchType(const Value: TDBFilterMatchType);//设置默认的匹配类型

    procedure SetFields;//设置字段

    procedure SetFieldsList(const Value: TStringList);//设置字段列表

    procedure SetOriginalSQL(const Value: TStrings);//设置SQL

    procedure RestoreSQL;//恢复SQL

    procedure SaveParamValues;//保存参数值

    { Private declarations }

  protected

    { Protected declarations }

    procedure Loaded; override;//装载过滤对话框

    procedure Notification(AComponent: TComponent;

      Operation: TOperation); override;//传送消息

    property OriginalSQL : TStrings read FOriginalSQL write SetOriginalSQL;

  public

    { Public declarations }

    constructor Create(AOwner : TComponent); override;//构造函数

[1] [2]  下一页


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台