ASP网页设计ASP完成Oracle数据纪录的分页显现程序
想法是和程序员的想法不一样的.至于为什么.大家去想一想.跟心理学有关的oracle|程序|分页|数据|显现<Pstyle="TEXT-INDENT:2em">本文细心的论述了使用ASP完成Oracle数据纪录的分面显现步骤。<Pstyle="TEXT-INDENT:2em">1、弁言<Pstyle="TEXT-INDENT:2em">经由过程扫瞄器会见数据量年夜的表时必要举行分页。ASP对数据库纪录分页显现能够经由过程ADO工具集Recordset工具来完成。Recordset具有以下几个用于分页显现的属性:<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">PageSize:每页显现的纪录数。<Pstyle="TEXT-INDENT:2em">PageCount:依据用户设定好的PageSize和表中的总纪录数,体系主动算出总页数。RecordCount:表中的总纪录数。<Pstyle="TEXT-INDENT:2em">AbsolutePage:暗示以后页码。如将AbsolutePage属性设为3,则以后纪录移至第3页第1条(也就是第31条)。<Pstyle="TEXT-INDENT:2em">晓得Recordset具有这几个属性后,信任人人都以为完成纪录的分页显现是很复杂的。先翻开数据库及表,再设定好PageSize和AbsolutePage,最初将纪录数据输入到扫瞄器,就能够半途而废。固然,利用Access或SQLserver作数据库时,就这么复杂,由于这两种数据库都撑持Recordset的这几个用于分页的属性。与Access或SQLserver比拟,Oracle数据库供应更好的平安性,而且在数据量极年夜的情形下功能占优,但是Oracle其实不撑持这些分页属性。本文将先容一种使用ASP完成对Oracle数据纪录分页显现的办法,使得Oracle用户可以轻松便利地完成纪录分页显现。<Pstyle="TEXT-INDENT:2em">2、完成历程剖析<Pstyle="TEXT-INDENT:2em">1、创建数据源:<Pstyle="TEXT-INDENT:2em">安装Oracle客户端软件,经由过程microsoftodbcfororacle驱动程序创建DSN如:"DSN=servername;UID=user;PWD=password"。<Pstyle="TEXT-INDENT:2em">2、创建数据表:<Pstyle="TEXT-INDENT:2em">复杂的团体材料表布局以下(表名为data):<Pstyle="TEXT-INDENT:2em">data:name,Varchar2;telephone,Number;email,Varchar2;<Pstyle="TEXT-INDENT:2em">3、程序代码剖析(在此只剖析纪录显现程序display.asp):<Pstyle="TEXT-INDENT:2em"><html><head><title>团体材料表</title></head><%sql="Select*Fromdata"//sql语句,从data表中掏出一切数据//以下创建数据库毗连Setconn=Server.CreateObject("ADODB.Connection")Cnn.Open"dsn=servername;uid=user;pwd=password;"SetRs=Server.CreateObject("ADODB.Recordset")Rs.CursorType=3Rs.LockType=3Rs.Opensql,conn//假如没有纪录,就加入IfRs.EOFThenResponse.EndEndIf%>//以下显现表头<palign="center">团体材料表<br></p><divalign="center"><center><tableborder="1"width="560"cellspacing="0"cellpadding="0"><tr><tdwidth="140"align="center">编号</td><tdwidth="140"align="center">姓名</td><tdwidth="140"align="center">德律风</td><tdwidth="140"align="center">E-mail</td></tr><%RecordsPerPage=10//设置每页显现纪录数为10笔记录CurrentPageNumber=0//设置以后页号为0INDEX=1//设置纪录编号为1//假如以后页号参数不为空,则将其范例转换为长整型,并挪用该参数ifRequest.QueryString("CurrentPageNumber")""thenCurrentPageNumber=CLng(Request("CurrentPageNumber"))endif//由于默许页号从0入手下手,以是要将参数减1CurrentPageNumber=CurrentPageNumber-1//以下盘算总的纪录条数TotalRrecord=0While(notRs.EOF)Rs.MoveNextTotalRecord=TotalRecord+1Wend//以下盘算总页数TotalPageNumberif(TotalRecordmodRecordsPerPage)=0thenTotalPageNumber=(TotalRecordRecordsPerPage)elseTotalPageNumber=((TotalRecordRecordsPerPage)+1)endif//假如输出页号参数小于0,则显现首页IfCurrentPageNumber<0ThenCurrentPageNumber=0endif//假如输出页号参数年夜于总页数减1,则显现最初一页ifCurrentPageNumber>(TotalPageNumber-1)ThenCurrentPageNumber=(TotalPageNumber-1)endif//纪录指针前往到第一个纪录Rs.movefirst//以下让记录指针超出输出页号之前的纪录,走到以后页的第一个记录PASSNUMBER=CurrentPageNumber*RecordsPerPagefori=0toPASSNUMBER-1Rs.movenextnextINDEX=PASSNUMBER+1NUMBER=1//NUMBER为计数器//以下显现以后页的表内容While(notRs.EOF)and(NUMBER<=RecordsPerPage)%><tr><tdwidth="140"align="center"><%Response.Write(INDEX)%></td>//编号<tdwidth="140"align="center"><%Response.WriteRs("name")%></td>//姓名<tdwidth="140"align="center"><%Response.WriteRs("telephone")%></td>//德律风<tdwidth="140"align="center"><%Response.WriteRs("email")%></td>//电子邮件</tr><%Rs.MoveNextINDEX=INDEX+1//编号加1NUMBER=NUMBER+1//计数器加1WendRs.close%></table></center></div></html>//以下表单完成页码导航<FORMAction=display.aspMethod=GET><%IfCurrentPageNumber0Then//<SPANstyle="FONT-FAMILY:宋体;mso-ascii-font-family:%>asp是基于web的一种编程技术,可以说是cgi的一种。它可以完成以往cgi程序的所有功能,如计数器、留言簿、公告板、聊天室等等。 以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。 哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的? 另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件) 我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标. 交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。 学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。 运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
页:
[1]