捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  粤ICP备10103342号-1 DELPHI盒子 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 盒子检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
 
广告
评论:使用原生ADO对数据进行分页显示
jasonmale 25210 2006/8/2 9:06:52
哈哈,各位不要“打架”了,技术讨论而已。哪种技术好,自己去实验吧。我在这里只是提供我自己做的方法,至于是非对错,我不去讨论,楼主说我是对的,我确实没有用原生的ADO来做,因为我懒,我想我应该去探讨一下了。
我从事IT十几年了,我从来也不敢说高手呢,只是感觉经验多了一点罢了。
我个人的观点:天下文章可以一大抄,但得加入自己的观点和看法。了解别人的技术,能提供自己一些借鉴,但不要期望拿过来就可以用。
jasonmale 25209 2006/8/2 9:02:14
哈哈,大家不用争议了,技术无止境,亦无高手之分,我只是说明分页的另一种方面而已,别无他意,我做IT做了十几年,我从来不认为我是高手,我只是有点经验以及在某些部分了解一点点而已。
每个人发表自己的一点技术讨论,或看别人的技术点滴,都只能作为参考而已,我个人观点:天下文章可以抄,但要有自己的论点和看法
zbluecn 25208 2006/8/2 7:49:43
不要偷换概念,我没有说不许反驳,不过是措辞的问题。

细细! 本来我就是说出这一点,没有想到你的竟然这样说

说什么呢 宁可的得罪君子不可得罪小人阿。
vvyang 25207 2006/8/2 0:23:51
To zbluecn:
  行了,别影响了您老的心脏健康,互相攻击到此打住...
vvyang 25206 2006/8/2 0:21:19
To zbluecn:
  呵呵,有人开始抓狂鸟...
  貌似我自始至终没有骂人啊,仅仅说说我的看法而已,倒是您开始破口大骂了,别太现眼了...
  别人说什么就是什么,这就是虚心吗?是不是在盒子里发贴不允许发贴者反驳回帖,否则就是不虚心,您规定的?
zbluecn 25205 2006/8/1 23:57:40
最后补充一句, 搜索2个站点 不容易啊. 好了 睡觉了... 有问题的话明天再说拉....
zbluecn 25204 2006/8/1 23:53:07
另外 您竟然可以为了骂人 去进行搜索.... 敬业精神值得我学习...

向你学习中
zbluecn 25203 2006/8/1 23:49:09
我只是对你点话说了一些我的看法 没有想到你怎么回象那个什么动物一样 见人就yao那

学无止境 知道马!!!

知道什么是虚心马? 

真是的 不和那个什么计较拉
zbluecn 25202 2006/8/1 23:45:59
那个啊  我不牛 我只是说一下我对你说的"您也不用大谈 Top 之类的SQL语句,地球人都知道了,听着都烦,不用再贴上来了。"这句话的看法

转贴控件 呵呵 不好马?
zbluecn 25201 2006/8/1 23:43:06
呵呵 你看看是什么时候发的帖子拉
vvyang 25200 2006/8/1 23:16:14
To zbluecn:
  另外我有一个问题搞不清楚,像您这样的高手,不必为了寻找 VssConneXion 的破解到大富翁上求助吧?第一您可以自己破解,第二实在不行可以自己写一个精简版的说,不符合您的作风啊...
vvyang 25198 2006/8/1 23:00:43
To zbluecn:
  我当然允许别人评论,但是我本人也有参与讨论的权利。
  您用不用ADO跟我无关,如果您对这个很熟不必来看这个帖子;我以前的帖子里也说过,这里高手太多而我的水平很低,不过还是喜欢自己写点东西(虽然比较垃圾);这一点与喜欢转贴控件的 zbluecn 先生不太一样。
  您是先会 Top 之类的SQL语句还是先会ADO我不关心,喜不喜欢 ClientDataSet 也是您自己的事情;我贴帖子是希望共同提高,如果您认为自己属于那种“很牛”的可以不看,没人请您,你自己进来的。
zbluecn 25196 2006/8/1 22:01:25
另外一个说明的是 我以前用ado作引擎处理的时候,业经常用到ado原生对象,不过那个时候主要是偷懒,直接对组合查询进行根新,需要控使用原生来控制单表的更新,并且作主键更新.呵呵毕竟delphi对ado的封装并不完善
zbluecn 25195 2006/8/1 21:56:51
怎么说楼主那 ~~ado原生对象 呵呵 看看 ADO的文档就知道了 ,我很少用ADO的分页机制,特别是一天产生数千条数据的时候,对这个的统计 用ADO处理简直是恶梦.

我不知道我的习惯好不好 在些Delphi程序的时候 数据库 一般用 数据引擎+ClientDataSet
我宁可自己处理分页机制.
如果说jasonmale 的说法地球人都知道,难么您的说法 估计是全宇宙人都知道了.

我所表达的意思是,既然你贴出自己的程序,因该容许他人评论.
vvyang 25194 2006/8/1 20:35:38
To jasonmale:
  您所谓的“分页”跟我说的ADO分页不是一回事,您也不用大谈 Top 之类的SQL语句,地球人都知道了,听着都烦,不用再贴上来了。
  “当然可以设置ado对象属性,但这时recordcount或pageSize就为-1”,哪个告诉你的,不要把 Delphi 包装过的、用来兼容 VCL 的 ADOExpress 等同于 ADO 对象...
jasonmale 25191 2006/8/1 17:28:10
这种分页并不见得实用
分页的方法其实很实用,在李维的一本书中专门有讨论过这方面的理论(书叫分布式开发.. 不记得了)。
如果一个大的数据表,使用table或者tquery来把数据全部取得前台是不现实的(当然可以设置ado对象属性,但这时recordcount或pageSize就为-1)使用楼主分页的方式就不行吧。
所以,我在做大型项目时,特别是在Internet中运行的程序,一般也需要分页显示记录(如查出大量数据,以分页显示),但确实不能确定记录数量(当然可先select count处理,但这又多了一笔开销)。一般来说,我们在发送sql语言时,限制取得数据笔数,如取20笔(SQLSERVEER中使用Top关键字,PG中使用limited)。如果取下一页怎么办。这里就需要确定这次查询的数据字符中有确定唯一性值,取下一页使用同样的SQL语句,但WHERE条件中需要key>界面上最后一笔的关键记录值, 同时又限制记录数量20个。
如SQLSERVER例子:第一次查出记录 select top 20 key field1,field2 from table 
key, field1 field 2
A     fv1    fv2
B     fv11   fv22
C    ...
D...
下一页 : select top 20 key,field1,field2 where key>'D'
...
上一页: select top 20 key ... where key<'A'
最后一页:select top 20 key.... order by key desc
。。。
有一个问题,如果关键是二个,并且非字符类型,怎么办。一样,先使用SQL中函数把非字符类型转换成固定格式的字符串(注意,FLOAT和INTEGER的转换需要统一长度的字符),再把多个关键字联合(+)成一个虚拟字段就OK了。
vvyang 25181 2006/8/1 1:35:43
To w3k:
  QQ:357439259
w3k 25178 2006/7/31 18:57:31
楼主留下你的QQ或者MSN
我们一起讨论DELPHI技术
vvyang 25176 2006/7/31 16:34:15
谢谢楼上两位鼓励,我一向提倡使用原生ADO对象,两位感兴趣的话可以看看我那个帖子。
分页虽然不能提高查询效率,但是它的用处还是很多的;分页的本质还是游标的移动,这从 Eof 不能判断本页结尾就可以看出来:

----set AbsolutePage = 1 ----
          Bof
cursor->          record 0
          record 1
          record 2
----set AbsolutePage = 2 ----
cursor->          record 3
          record 4
          record 5
----set AbsolutePage = 3 ----
cursor->          record 6
          record 7
          record 8
----set AbsolutePage = 4 ----
cursor->          record 9
          record 10
          record 11
          Eof
----------
w3k 25161 2006/7/31 0:50:34
采用ADO原生对象处理分页,非常容易!
哎,delphi的DBGRID等VCL的数据源绑定不支持ADO对象返回的记录集,可惜可惜
      感谢楼主的分享……
第一页 上一页 下一页 最后页 有 41 条纪录 共3页 21 - 40
 用户名:
 密 码:
自动登陆(30天有效)
 
  DELPHI盒子版权所有 技术支持:深圳市麟瑞科技有限公司 1999-2024 V4.01 粤ICP备10103342号-1 更新RSS列表