捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  粤ICP备10103342号 DELPHI盒子 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 盒子检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
利用接口特性构建可自动回收的Query对象池
关键字:Interface ADO Thread DLL
来 自:原创
平 台:Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:初级 完成时间:2009/3/5
发布者:murphyaefe 发布时间:2009/3/16
编辑器:DELPHI7 语  种:简体中文
分 类:数据库 下载浏览:2556/8070
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
图片如果打不开,说明流量不够了,请稍候下载……
利用接口特性构建可自动回收的Query对象池


构建一个线程池,外部通过指定接口调用线程中的Query处理数据库操作,当外部使用完成后,依据接口生存期自管理的特性释放外部的引用;

特性:

1. 线程内查询,外部调用时界面不会出现僵死状态;
2. 外部引用Query部件无需管理创建和释放,模块内部自动回收统一处理;
3. 支持外部以多线程方式操作数据,例如:对无上下文关联的数据插入和查询;
4. 支持多个连接;
5. 可选弹出操作提示对话框,并可定制对话框内容;


简要说明:

TParamItem 
管理存储过程的参数;

TCHintForm
内建的提示窗体;

TCDataSet
继承于TCustomADODataSet的基类,完成自动回收的相关工作;

TCQuery
提供外部调用的可回收TADOQuery部件,用于支持一般查询及增删改操作;

TCStoredProc
提供外部调用的可回收的TADOStoredProc部件,用于支持存储过程操作;

TCDataSetThread
数据库操作管理线程;

TCDataSetConnect
封装TADOConnection后的可回收的连接部件,提供外部调用;

TDataFactory
对象工厂,负责完成基础的创建工作;


对象管理关系如下:

TDataFactory
    |
    --- TCHintForm 
    |
    --- TCDataSetConnect
          |
          --- TCDataSetThread
          |
          --- TCDataSet
          |
          --- TCQuery
          |
          --- TCStoredProc
          |
          --- TParamItem
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
没有相关文章
相关评论
共有评论9条 当前显示最后6条评论
zcdownturn 2009/3/23 22:42:01
没有数据库啊,运行不了啊
xjl 2009/3/24 22:44:17
好东西,DLL返回接口,例子没有全部发挥DLL的作用,明天再仔细看看其他的功能,楼主可以把示例再发挥一下,使用OO的朋友可以参考,比较有价值。

to zcdownturn 
   只需要有一个SQLSERVER数据库,把里面的表和过程相应的替代一下就可以了,甚至可以直接就使用NorthWind数据库中的表就行了。
zhy19806 2009/4/8 16:12:14
希望有一个比较强大的DEMO
murphyaefe 2009/4/12 10:41:38
有网友反馈IQuery连接到感应控件时出错的问题,仔细的查了一下,其实是TCDataSet中未对TDataSet做完整封装造成的。比较熟悉的朋友可以直自封装完整,或者向我索取也可。

to zhy19086:

DEMO的基本功能都有了,如果要应用到实际的项目中,可能还是需要根据不同情况来做一些扩展的,这些当然不可能在DEMO中全部展示出来,应该说,在提供全部源代码的情况下,扩展起来还是很简单的。

基于上述感应控件相关的BUG,更新了一下DEMO,加入了对感应控件的演示,感兴趣的朋友可以向我索取。如果您做了更好的封装和扩展,需要与人分享的话,请顺便发我一份。

我的QQ在上述回复中已经写了,欢迎多多交流。
xiaxia421 2009/8/24 16:12:17
还不能与TADOQuery的完美的结合,我想,是否可以改造function GetQuery(out ADataSet: ICQuery): Boolean;方法为 function GetQuery(out ADataSet: ICQuery; AQuery: TADOQuery): Boolean; 的方式使之紧密结合。因为在实际运用中就是丢一些TADOQuery的控件在程序里进行数据库操作
murphyaefe 2009/9/30 14:47:35
to xiaxia421:

我想你搞错了方向,我写的这个DLL完全是基于ADOQuery的扩展,可以直接代替掉ADOQuery;如果仔细看过代码的朋友应该都能够理解了,呵呵。
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 技术支持:深圳市麟瑞科技有限公司 1999-2024 V4.01 粤ICP备10103342号 更新RSS列表