请熟悉ADO和DBEXPRESS的FW看看此题。 (300分)

  • 主题发起人 主题发起人 唐太宗
  • 开始时间 开始时间

唐太宗

Unregistered / Unconfirmed
GUEST, unregistred user!
李维的DBEXPRESS的新书上讲到
在使用tsqlconnection+tsqlquery+tdatasetprovider+tclientdataset时,
如果设置tdatasetprovider.options.poFetchBlobsOnDemand为TRUE, 则
客户端并不把数据库端的BLOB字段读到客户端内存中, 我实验了的确如此,
速度有很大提高,在程序中要读取此字段时,DBEXPRESS再自动从数据库上读数据的。
但是我使用TAdoconnection+tadoquery+tdatasetprovider+tclientdataset时,
就是设置了tdatasetprovider.options.poFetchBlobsOnDemand为TRUE,读取数据还
是很慢,肯定没有使用DBEXPRESS的效果,
请问大家我如果使用ADO怎么样达到DBEXPRESS的效果, 或者跟我讲讲这方面的原理
,分数不是问题。 :)))))
 
ADO是肯定没有DBExpress快的
两者的设计理念是不同的,ADO本来就是为两层设计的,DBExpress是为三层设计的
 
但问题是只是设置datasetprovider的poFetchBlobsOnDemand属性,
就会使得BLOB字段的内容不被传送到客户端, 这是什么原理呢,
我都不知道这跟ADO和DBEXPRESS有什么关系, 呵呵。
//我看看源码,
请大家发表看法, 不管正确与否都有分的。[:D][:D][:D]
 
是什么程序一定要三层来解决呀,客户需要三层还是技术需要三层?
 
把dataset.cursortype设为ctOpenForwardOnly试试
 
--------如果使用ADO怎么样达到DBEXPRESS的效果这方面的原理-------------
1.两者都是后台处理数据库,把相应的信息转换为SQL语言来做的
2.两者在默任的时候''select * from goods ''也会全部的从后台数据库取的所有记录.
3.adodataset 设定了maxrecord 回从后台取得 maxrecord相应的记录后会停止,dbexpress设定packrecords 也能达到相应的效果,但不会停止余下的记录搜索.
4.两者最不同的是:>
 
后退
顶部