DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: wjy13061029975
今日帖子: 6
在线用户: 22
导航: 论坛 -> 移动应用开发 斑竹:flyers,iamdream  
作者:
男 waterstone (waterstone) ★☆☆☆☆ -
盒子活跃会员
2004/3/29 12:32:36
标题:
ADO.Net 和ADO数据访问的注意事项 浏览:4088
加入我的收藏
楼主:     ADO.Net是微软的新一代数据访问引擎,采用OLE DB作为数据访问技术基础,
采用数据集脱离的方式来访问修改数据。ADO是微软的上一代数据访问引擎,同
样是基于OLE DB进行数据访问的数据访问引擎(也许应该说是组件),ADO是采
用COM封装了OLE DB引擎的数据访问组件。对于ADO的数据访问技术是比较成熟的。

    ADO 访问数据的时候可以断开连接也可以不断开连接。但是对于ADO.Net而言
保持连接简直是浪费,因为其数据已经被提到了客户端来处理,已经和数据库没
有关系了。所以在ADO.Net的数据库系统中一般是当取回数据或者完成操作以后就
会关闭数据库连接(实际上也许没有被关闭)。ADO.Net的数据库连接的关闭是返
回缓冲池中而不是一定断开了和数据库的连接,对于何时关闭这个连接由ADO.Net的
缓冲池管理机制来决定。而ADO在使用的时候如果关闭了连接那么这个连接是真的被
关闭了。这也是Delphi里面我们对于一个数据库一般只采用一个连接的原因,为了
减少数据库连接的数目来降低数据库负担,当然COM+和MTS也提供了连接池机制,
但是其连接池机制似乎不是很成熟,特别是MTS中采用系统的数据连接池可能会造
成系统的死锁,当然我们可以使用自己的连接池或者第三方的连接池来管理数据库
连接。而在ADO.Net中这一功能是是系统的一部分,但是在使用中发现只有连接被
关闭才会返回池中,如果连续的创建数据库连接而已经使用的数据库连接没有被返
回池中这个时候,ADO.Net会真实的创建数据库连接并且返回给用户。

    由此可见在ADO.Net中如果不关闭连接而是不停的请求连接是一件很恐怖的事情。
对于ADO.Net中的连接我的看法是尽可能早的关闭(返回系统连接池),这样可以加
快系统反应速度而且能够降低数据库连接的数目。ADO的连接的关闭则是一个很有趣
的事情,有的时候我们连接数据库速度限制我们频繁的关闭打开连接,为此我们可能
需要保持一些连接以获得速度。 

    ADO在DCOM中运行是对于服务器端软件的设计是一个考验。特别是使用自由线程
而且自己处理数据连接的时候。在Delphi中我个人认为使用DCOM来进行开发的时候如
果没有特别的需要(如数据相应速度,和数据库连接数的限制),最好是使用单元线程,
这样我们就无需为ADO连接的处理而担心了!如果系统需要全局管理数据连接的那么一定
要小心因为对于服务器端的系统而言只有当系统终止的时候才会回收数据连接。要防止
多个线程同时访问同一个数据库连接。而在Delphi 的客户端开发的时候我们要尽量的
将少生成业务对象的实例,对于使用过的业务对象如果没有全局申明,那么在其申明的
域以外就会被释放,一个好的传统是对于每个对象都在使用过以后赋值为nil,从而让系
统回收。在构建一个State Server时,我们最好将ADOConnection的KeepConnection 
设置为True,否则只有当这个State Object 被释放的时候才会被关闭,因为KeepConnection
只保证在没有数据集被关闭的情况下才能关闭连接!为此我们在使用State Server Object
的时候可以将KeepConnection属性设置为True,这样我们就能够在我们不需要数据连接
而需要对象的状态的时候自动的将数据库连接关闭。如果有很多的客户端同时连接到服务器,
如果才用Apartment时将产生很多的数据库连接,这样就能够在不需要数据库连接的时候自
动的关闭数据库连接。如果需要的时候再次打开。
----------------------------------------------
我来自农村广阔的田野我的每一个动作都很夸张http://waterstone.51r.com
作者:
男 waterstone (waterstone) ★☆☆☆☆ -
盒子活跃会员
2004/3/29 12:33:24
1楼: 本人也在摸索、学习中!!!

----------------------------------------------
我来自农村广阔的田野我的每一个动作都很夸张http://waterstone.51r.com
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行398.4375毫秒 RSS