|
|
P194=>第四章——深入了解ADO=>《Delphi5.x ADO/MTS/COM+ 高级程序设计篇》
P194=>第四章——深入了解ADO=>《Delphi5.x ADO/MTS/COM+ 高级程序设计篇》
许多人认为Static Cursor数据集是只读的,因此在需要修改数据的情形下是不
适合的。这并不完全正确,因为Static Cursor数据集虽然基本上是属于只读类型的
Cursor,但是在ADO中我们仍然可以修改使用Static Cursor类型的数据集。例如,
使用ADO的BatchUpdate,或使用MIDAS的TClientDataset组件,此外ADOExpress
封装的TADODataset、 TADOQuery和TADOTable都可以在使用Static Cursor的情形
中修改数据。
一般来说,在使用Client-Side Cursor的应用程序中,大概都是使用Static
Cursor的数据集,这当然是因为Client-Side Cursor和Static Cursor的执行什为非常
相配的关系,因为这两种数据集在数据源处理完之后都不再和数据库中的数据有
直接的连接关系。事实上,当应用程序选择使用Client七ide Cursor时再搭配Static
Cursor是非常不错的组合,因为这样不但有效率,而且也有充足的功能来满足客户
端应用程序对于处理数据的要求。如果程序员适当设定ADO的Cachesize属性值,
只把适当的数据由数据源传递到客户端的ADO缓存中,那么不管是在主从架构或
分布式多层应用系统中都会拥有良好的表现。除非应用程序只需要一个只能够向
前测览的数据集,那就是稍后要介绍的Forwardonly Cursor,否则建议各位应该
尽量使用这种组合来开发ADO应用程序。
4叫毛 Fooard-Only Cursor
Forward-only Cursor应该算是历史最早的Cursor类型了。这种Cursor在实现上
非常简单,同时提供了最好的执行效率。 Forwardonly Cursor的执行行为是当数
据源处理了SQL命令并且产生了结果数据集之后,也会由ADO引擎负责处理。但
是在这种数据集中,应用程序只能由前往后制览或处理数据,而不能够由后面的
数据往前再存取已经存取过的数据。图45显示了Forwardonly Cursor的执行属性。
从上图可以看到,对于客户端已经存取过的数据,这些数据对于ADO引擎来
说就已经是不存在的数据了,因此客户端应用程序如果使用ADO的MovePrevious。
MoveFirst或ADOExpress的Prior以及First等方法回到已经存取过的数据,那么ADO
引擎就会产生错误的例外。
虽然Forward-only Cursor具有良好执行效率的属性,但是Forward only Cursor
只提供限定功能的创览数据的能力也是它较少被程序员使用的主要原因之一。不
过,如果程序员结合在服务器端使用Forwardonly Cursor,而在客户端使用轻量
|
|