所属类别:Asp
文章作者:未知
特别推荐:免费发布信息 承包关键词~~抢爆了!HOT!
CREATE PROCEDURE [dbo].[Select_page_data_allow_fields_cond] @allow_fields varchar(100) =" * ",@DefRecordNum int =20,@PageNo int =1,@Where varchar(500) = nullASdeclare @R_end intdeclare @S_sql varchar(500)declare @condition varchar(500)declare @condition2 varchar(500)--if rtrim(@Where)!=""--if rtrim(@Where)!=""SET @r_end=(@PageNo-1)*@DefRecordNum+1--正则页码IF ( CAST(@r_end AS INT)<1)SET @r_end = 1SET @Where=rtrim(@Where)--if not (@Where is null )if (@Where <>'' )SET @S_sql="SELECT TOP "+CAST(@DefRecordNum AS CHAR(4)) +space(2)+@allow_fields+" FROM BBSReply WHERE id>=(SELECT MAX(ID) AS r_begin FROM (SELECT TOP "+CAST(@R_end AS CHAR(5))+" ID FROM BBSReply WHERE "+@Where+" ORDER BY ID) airzen) AND "+@Where+" order by id"ELSESET @S_sql="SELECT TOP "+CAST(@DefRecordNum AS CHAR(4)) +space(2)+@allow_fields+" FROM BBSReply WHERE id>=(SELECT MAX(ID) AS r_begin FROM (SELECT TOP "+CAST(@R_end AS CHAR(5))+" ID FROM BBSReply ORDER BY ID) airzen) order by id"--PRINT @S_sqlEXEC(@S_sql)GO---------------------------------------------------<%'********************************************************************'本程序由AIRZEN 2004/5/12 更新修定。'===================================================================Option Explicit'Response.FlushDim BeginTime,EndTimeBeginTime=TimerDim conn,SQLstr,Rs,DefRecordNum,CursorBegin,CursorEnd,CurPageNum,havDefRecordNum=20dim R_end'--------------获取相关参数----------If Request("CurPageNum")<>"" ThenCurPageNum=CLng(Request("CurPageNum"))If CurPageNum<=0 Then CurPageNum=1ElseCurPageNum=1End If'----------------End-----------------'------------显示翻页内容函数--------Function TurnPageFS(DispRecordNum)Dim nWhile Not(Rs.Eof) And n"&_""&n&""&_""&Rs(0)&""&_""&Rs(1)&""&_""&Rs(2)&""&_""&Rs(3)&""&_""&Rs(4)&""&_""&Rs(5)&""&_""If n=1 Then CursorBegin=Rs(0)If n=DefRecordNum Or Rs.Eof Then CursorEnd=Rs(0)Rs.MoveNextWendEnd Function'-------------连接数据库-------------Set conn=Server.CreateObject("Adodb.Connection")'SQLstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.Mappath("mldata.mdb")SQLstr="provider=SQLOLEDB;server=(local);database=XX;uid=XX;pwd=XX;"conn.Open SQLstrDim TotalRecords,TotalPagesTotalPages=clng(request.QueryString("TotalPages"))'//判断有无接收的页码if TotalPages=0 or not isnumeric(TotalPages) then '//无接收页码SQLstr="Select count(ID) As RecordSum From BBSreply WHERE userid='airzen'" '//此条件应与下面的存储过程条件保持一持Set Rs=conn.Execute(SQLstr,0,1)TotalRecords=Rs("RecordSum")TotalPages=Abs(Int(TotalRecords/DefRecordNum*(-1)))Rs.CloseSet Rs=Nothingend if dim allow_fields'//允许控制选择的字段以最优化的SQL 语句执行,'//allow_fields :允许的字段'//DefRecordNum :每页显示的记录数目'//CurPageNum:当前页码allow_fields="[*]"if TotalPages<1 then TotalPages=1 SQLstr="Select_page_data_allow_fields_cond "&allow_fields&","&DefRecordNum&","&CurPageNum&",[userid='airzen']"'//此处的条件应与上面的保持一致'//SQLstr="Select_page_data_allow_fields_cond "&allow_fields&","&DefRecordNum&","&CurPageNum&",[ id=1449236]"response.write ""&SQLstrSet Rs=conn.Execute(SQLstr)%>(airzen 2004/05/13 Version of Procedure)td,br,div,p,body {font-size:12px}<%Response.Write CurPageNum&"/"&TotalPages&"页 总记录数:"&TotalRecords%> 首页 ">上一页 ">下一页 IDTitleFileName大小尺寸类别<%TurnPageFS(DefRecordNum)Rs.CloseSet Rs=Nothingconn.CloseSet conn=Nothing%><%Response.Write CurPageNum&"/"&TotalPages&"页 总记录数:"&TotalRecords%> ">首页 &CurPageNum=<%=CurPageNum-1%>">上一页 &CurPageNum=<%=CurPageNum+1%>">下一页 &CurPageNum=<%=TotalPages%>">末页 <%EndTime=TimerResponse.Write "程序执行时间:"&(EndTime-BeginTime)*1000&"毫秒"Response.Write " 第一条记录的ID值(CursorBegin)="&CursorBegin&" "Response.Write "最后一条记录的ID值(CursorEnd)="&CursorEnd&""%> 作者的话:本程序思路用到存储过程,ASP页面中加入传递参数TotalPages 第一页运行时将会多做一次获取总页数的运算,在以后的页面中将会用参数传递。这样将节省一些时间。关闭本页
相关信息· 腾讯声明诬蔑员工,抗议腾讯霸王劳动合同(转)
· 只用记事本就能去除迅雷广告
· 解决 Joomla JError Unable to load Database D..
· 用ASP.NET实现在线用户统计
78188
27100
