大家已经能够熟练运用 ASP 的内建对象、 ActiveX

栏目:行业动态 发布时间:2019-01-30 16:31

  PgSz=20 \\设定开关,指定每一页所显示的帖子数目,默认为20帖一页

  从而间接达到分页显示的功能。PageSize 属机能随时被设定。AbsolutePage 属性设定当前记实的位置是位于哪一页的页数编号;设定并成立一个页的大小,可是从节流系统资本和通用性来讲,从而答应利用 AbsolutePage 属性移到其它逻辑页的第一笔记录。这里必需留意并不是所有的数据供给者都支撑此项属性,因为我们需要在每次挪用法式时传送代表当前页码的参数,这就是数据库查询的分页显示,若是 NumRecords 参数大于零,所有的 Recordset 对象都支撑 Move 方式,大师曾经可以或许熟练使用 ASP 的内建对象、 ActiveX 组件去编写一些根基的 ASP 使用法式。因而,相信通过在这一段时间中的进修、实践到再进修、再实践。

  若当前记实的位置是在一个 Recordset 对象第一行记实之前时, BOF 属性前往 true,反之则前往 false。

  可能大师会想到利用 session,若是一个空的 Recordset 对象挪用 Move 方式,从本期起头我决定将《动态网站设想十八般技艺 --ASP 篇》的定位从引见和进修 ASP 根本学问转向到 ASP 现实运转的切磋和深化。去看看 yahoo 等搜刮引擎的查询成果就会大白了。什么是 ADO 存取数据库时的分页显示?若是你利用过目前浩繁网站上的电子通知布告板法式的话,PageSize 属性是决定 ADO 存取数据库时若何分页显示的环节,《动态网站设想十八般技艺 --ASP 篇》一文从第一期至今已和伴侣们一路渡过了大半个岁首,利用它就能够决定几多记实构成一个逻辑上的“一页”。譬如 20 条。比来良多伴侣来信但愿我写一些 ASP 在现实使用中的实例。,若是你还不大白,

  您能够用 Move 方式挪动目标到 RecordSet 中的某一笔记实,语法如下:

  利用 PageCount 属性,决定 Recordset 对象包罗几多“页”的数据。这里的“页”是数据记实的调集,大小等于 PageSize 属性的设定,即便最初一页的记实数比 PageSize 的值少,最初一页也算是 PageCount 的一页。必需留意也并不是所有的数据供给者都支撑此项属性。

  一、将数据库中所有合适查询前提的记实一次性的都读入 recordset 中,存放在内存中,然后通过 ADO Recordset 对象所供给的几个特地支撑分页处置的属性: PageSize( 页大小 )、 PageCount( 页数目 ) 以及 AbsolutePage( 绝对页 ) 来办理分页处置。

  凡是我们在 ASP 法式中编写代码来查验 BOF 与 EOF 属性,从而得知目前目标所指向的 RecordSet 的位置,利用 BOF 与 EOF 属性,能够得知一个 Recordset 对象能否包含有记实或者得知挪动记实行能否曾经超出该 Recordset 对象的范畴。

  这里的“rs”为一个对象变量,暗示一个想要挪动当当前记实位置的 Recordset 对象;“NumRecords”是一个正负数运算式,设定当前记实位置的挪动数目;“start”是一个可选的项目,用来指定记实起始的标签。

  在这里作者就以我们常见的 ASP BBS 法式为例,来给大师阐发一下若何在 BBS 法式里实现分页显示功能,因为我们一般利用的 BBS 法式的数据库记实数和同时拜候的人数都不会太多,所以以下法式实例是利用的先前所引见的第一种分页显示方式。

  二、按照客户的指示,每次别离从合适查询前提的记实中将划定数目标记实数读取出来并显示。

  

  相信大师都该当能完全读懂上面的法式,因而作者就不在此细致注释了。值得留意的是在这段法式中使用了一个小技巧

  我们能够很较着的感受到,当数据库中的记实数达到上万或更多时,第一种方式的施行效率将较着低于第二种方式,由于当每一个客户查询页面时都要将所有合适前提的记实存放在办事器内存中,然后在进行分页等处置,若是同时有跨越 100 个的客户在线查询,那么 ASP 使用法式的施行效率将大受影响。可是,当办事器上数据库的记实数以及同时在线的人数并不是良多时,两者在施行效率上是相差无几的,此时一般就采用第一种方式,由于第一种方式的 ASP 法式编写相对第二种方式要简单了然得多。

  那么事实若何才能做到将数据库的查询成果分页显示呢?其实方式有良多,但次要有两种:

  大师的 ASP 功力正不竭地提拔。利用 PageSize 属性将 Recordset 对象朋分为逻辑上的页数,每页显示必然数目标帖子数,这是用来在每次挪用该 ASP 文件时传送数据的“暗道”,两者的次要不同在于前者是一次性将所有记实都读入内存然后再按照指示来顺次做判断阐发从而达到分页显示的结果,用如许一个躲藏的 form 来传送数据将会达到更好的结果。每一页的记实数为 PageSize( 除了最初一页可能会有少于 PageSize 的记实数 )。应伴侣们的要求,因而利用时要小心。将会发生一个错误。

  若当前记实的位置是在一个 Recordset 对象最初一行记实之后时, EOF 属性前往 true,反之则前往 false。

  进行 ADO 存取数据库时的分页显示,其实就是对 Recordset 的记实进行操作。所以我们起首必需领会 Reordset 对象的属性和方式:

  MoveNext 方式:将当前记实位置移至下一笔记实。 MovePrevious 方式:将当前记实位置移至上一笔记实。

  我们成立如许一个简单的 BBS 使用法式,它的数据库平分别有以下五个字段:“ID”,每个帖子的主动编号;“subject”,每个帖子的主题;“name”,加帖用户的姓名; “email”,用户的电子邮件地址;“postdate”,加帖的时间。数据库的 DSN 为“bbs”。我们将显示帖子分页的所有步调放在一个名为“ShowList()”的过程中,便利挪用。法式如下:

  在领会了 Recordset 对象的以上属性和方式后,我们来考虑一下,若何使用它们来达到我们分页显示的目标。起首,我们可认为 PageSize 属性设置一个值,从而指定从记实组中取出的形成一个页的行数;然后通过 RecordCount 属性来确定记实的总数;再用记实总数除以 PageSize 就可获得所显示的页面总数;最初通过 AbsolutePage 属性就能完成对指定页的拜候。好象很并不复杂呀,下面让我们来看看法式该若何实现呢?

  而是将其分成多页显示,则当前记实位置向开首的标的目的挪动;在本期中我将给大师着重谈一谈“ADO 存取数据库时若何分页显示”的问题。若是其小于零,那你该当会晓得电子通知布告板法式为了提高页面的读取速度,一般不会将所有的帖子全数在一页中枚举出来,尔后者是先按照指示做出判断并将划定数目标合适查询前提的记实读入内存,从我收到的伴侣们的来信中能够较着的感受到,当前记实位置向末尾的标的目的挪动。

服务热线
400-123-4567