Oracle分页类
来源:互联网 发布:禁酒令 女权 知乎 编辑:程序博客网 时间:2024/09/21 06:36
一、文件: Cls_OracleShowoPage.asp
<%
'说明: 使用此程序请保留以下信息
'名称: fengzheng Oracle 分页类
'联系: wangzj0306@126.com
'类名: Cls_OracleShowoPage
' (包括一个分页导航的 JS:showo_page.js)
'
'一、特点:
' 1、优点:每次只取出相应的 PageSize 条记录,使用简单;
' 2、缺点:在查询记录时,只能用SELECT * FROM , 并且只能对单表进行查询,如果是多表查询,则应该把子查询另外写,再
' 用 IN 的方法,把条件加入到 WHERE 里面去;
'二、相关说明:
' 1、PageSize 设置每一页显示的记录数
' 2、Conn 设置 Connection
' 3、Sql 设置表名、条件、排序方式
' 如:tablename$id>10 and name='33'$id desc
' 4、JsUrl 设置分页导航文件 showo_page.js 的相对路径
' 5、GetRecCount 私有成员,不能访问, 由 Sql 得到记录数
' 6、RecCount 通过调用 GetRecCount() 得到记录总数
' 7、ResultSet 返回一个二维数组
' 8、ShowPage(ByVal strTableWidth) 输出一个分页导航的表格,参数用来设置表格的宽度
' 如:ShowPage("98%"),ShowPage("780")
' 9、CheckNum 私有成员,不能访问,判断 Page 参数的有效性
'三、例子:
' 1、把类文件和分页导航文件进行拷贝;
' 2、加入如下代码:
' <%
' Dim ors
' Set ors=new Cls_OracleShowoPage '创建对象
' With ors
' .Conn=DbConn '设置 Connection
' .PageSize=20 '设置每一页显示的记录数
' .Sql="TableName$WhereStr$orderstr" '设置SQL,如:.Sql="SEP.scd_sep_tel$tel_tel like '%7322%'$tel_order desc"
' .JsUrl="" '设置分页导航文件 showo_page.js 的相对路径,在同一目录下,不在同一目录,则用相对路径如:.JsUrl="../"
' end With
' Rs=ors.ResultSet() '得到一个二维数组的结束集
' For i=0 to Ubound(Rs,2) '在这里设置自己的输出效果
' Response.Write(Rs(0,i) & "<br>") '第一列,为序号列
' Response.Write(Rs(1,i) & "<br>") '第二列,为数据表中的第一列
' Response.Write(Rs(2,i) & "<br>") '第三列,为数据表中的第二列
' ........
' Next
'
' Call ors.ShowPage("760") '输出一个分页导航的表格,参数用来设置表格的宽度
' %'>
'
'
'
%>
<%
Class Cls_OracleShowoPage
Private Showo_PageSize,Showo_CurrPage
Private Showo_Conn
Private Showo_Table,Showo_Where,Showo_Order
Private Showo_JsUrl
Private Showo_RecCount,Showo_PageCount,GetRecCount_Sql,ResultSet_Sql,Showo_Sql
'================================================================
' Class_Initialize 类的初始化
'================================================================
Private Sub Class_Initialize
Showo_PageSize=10 '设定每页记录条数的默认值为10
Showo_CurrPage=CheckNum(Trim(Request("Page")),1,-1) '获取当前面的值
Showo_Order="" '默认排序
Showo_Where="" '默认条件
End Sub
'================================================================
' PageSize 设置每一页记录条数,默认10记录
'================================================================
Public Property Let PageSize(ByVal intPageSize)
Showo_PageSize=CheckNum(intPageSize,Showo_PageSize,-1)
End Property
'================================================================
' Conn 得到数据库连接对象
'================================================================
Public Property Let Conn(ByVal objConn)
Set Showo_Conn=objConn
End Property
'================================================================
' Sql 取得sql所需表字段条件排序,输入:字段,表,条件,排序,主ID
'================================================================
Public Property Let Sql(ByVal str_sql)
Showo_Sql=Split(str_sql,"$")
Showo_Table=Showo_Sql(0)
Showo_Where=Showo_Sql(1)
Showo_Order=Showo_Sql(2)
End Property
'================================================================
' JsUrl 取得showo_page.js的路径
'================================================================
Public Property Let JsUrl(ByVal strJsUrl)
Showo_JsUrl=strJsUrl
End Property
'================================================================
' GetRecCount 取得记录总数
'================================================================
Private Function GetRecCount()
Dim RecordCount
GetRecCount_Sql="SELECT Count(*) FROM " & Showo_Table
If Showo_Where<>"" Then
GetRecCount_Sql=GetRecCount_Sql & " WHERE " & Showo_Where
End If
set RsCount=server.CreateObject("adodb.recordset")
RsCount.Open GetRecCount_Sql,Showo_Conn,1,1,&H0001
RecordCount=clng(RsCount(0))
RsCount.Close
set RsCount=nothing
GetRecCount=RecordCount
End Function
'================================================================
' RecCount 记录总数
'================================================================
Public Property Get RecCount()
RecCount=GetRecCount()
End Property
'================================================================
' ResultSet 返回分页后的记录集
'================================================================
Public Property Get ResultSet()
ResultSet=Null
Showo_RecCount=RecCount()'记录总数
'当前页
If Showo_RecCount>0 Then'如果总数大于0
'得到页数
If (Showo_RecCount mod Showo_PageSize)=0 Then
Showo_PageCount=Showo_RecCount/Showo_PageSize
Else
Showo_PageCount=Showo_RecCount/Showo_PageSize+1
End If
'当前页
Showo_CurrPage=CheckNum(Showo_CurrPage,1,Showo_PageCount)
'根据当前页号,及每页显示记录数,从数据库中取出相应的记录的SQL
ResultSet_Sql="select * from (select rownum r_n,temptable.* from ("
ResultSet_Sql=ResultSet_Sql & "SELECT * FROM " & Showo_Table
If Showo_Where<>"" Then
ResultSet_Sql=ResultSet_Sql & " WHERE " & Showo_Where
End If
If Showo_Order<>"" then
ResultSet_Sql=ResultSet_Sql & " ORDER BY " & Showo_Order
End If
ResultSet_Sql=ResultSet_Sql & ") temptable ) where r_n between " & (Showo_CurrPage-1)*Showo_PageSize+1 & " and " & Showo_CurrPage*Showo_PageSize
'得到RS
Set Showo_Rs = Server.CreateObject("adodb.RecordSet")
Showo_Rs.Open ResultSet_Sql,Showo_Conn,1,1,&H0001
ResultSet=Showo_Rs.GetRows(Showo_PageSize)
Showo_Rs.close
Set Showo_Rs=Nothing
End If
End Property
'================================================================
' ShowPage 得到分页导航
'================================================================
Public Sub ShowPage(ByVal strTableWidth)
'----------得到分页导航-----------------------------
Response.Write("<!--分页导航表格开始-->" & vbCrLf)
Response.Write("<table width=" & strTableWidth & " border=""0"" align=""center"" cellpadding=""2"" cellspacing=""2"">" & vbCrLf)
Response.Write(" <tr>" & vbCrLf)
Response.Write(" <td>" & vbCrLf)
Response.Write(" <Script Language=""JavaScript"" type=""text/JavaScript"" src=" & Showo_JsUrl & "showo_page.js></Script>" & vbCrLf)
Response.Write(" <Script Language=""JavaScript"">" & vbCrLf)
Response.Write(" ShowoPage(""<table style='BORDER-COLLAPSE: collapse' borderColor='#111111' height='10' cellSpacing='0' cellPadding='0' width='95%' border='0'><tr><td vAlign='bottom' style='font-family: Verdana,宋体; font-size: 11.5px; line-height: 15px'>"",""</td></tr></table>"",""页次:<font color='red'>"",""</font>/"","""","" "","" 每页 <font color='red'>"",""</font> 条 "","" 共计:<font color='red'>"",""</font> 条记录</td><td vAlign='bottom' align='right' style='font-family: Verdana,宋体; font-size: 11.5px; line-height: 15px'>"",""<font face=webdings>9</font>"",""<font face=webdings>7</font>"",""<font face=webdings>8</font>"",""<font face=webdings>:</font>"","" 跳转:"",""<font color='orange'>["",""]</font>"","""","""",""<font color='red'>"",""</font>"","""",""""," & Showo_RecCount & "," & Showo_PageSize & ",2)")
Response.Write(vbCrLf & " </Script>" & vbCrLf)
Response.Write(" </td>" & vbCrLf)
Response.Write(" </tr>" & vbCrLf)
Response.Write("</table>" & vbCrLf)
Response.Write("<!--分页导航表格结束-->" & vbCrLf)
'----------得到分页导航-----------------------------
End Sub
'================================================================
' 输入:检查字段,开始数字(默认数字),结束数字(为-1则不检查大小)
'================================================================
Private Function CheckNum(ByVal strStr,ByVal intStartNum,ByVal intEndNum)
CheckNum=intStartNum
If IsNumeric(strStr) Then CheckNum=Clng(strStr)
If intEndNum>-1Then
If CheckNum<intStartNum Then CheckNum=intStartNum
If CheckNum>intEndNum Then CheckNum=intEndNum
End If
End Function
'================================================================
' Class_Terminate 类注销
'================================================================
Private Sub Class_Terminate()
If IsObject(Showo_Conn) Then
Showo_Conn.Close
Set Showo_Conn=Nothing
End If
End Sub
End Class
%>
二、showo_page.js
(JS文件,在叶子js分页样式基础上做了修改;QQ:311673,MSN:ishows@msn.com,http://www.showo.com)
/**
*=================================================================
*名称: 叶子js分页样式
*Name: ShowoPage With JavaScript
*RCSfile: showo_page.js
*Revision: 0.04Beta
*Author: yezi(叶子)
*Date: 2005-01-21 17:50:10
*Description: js分页样式,显示上一页下一页的翻页结果
*Contact: QQ:311673,MSN:ishows@msn.com,http://www.showo.com
*=================================================================
*/
var url,CurrPage,re,CurrentPage,iurl,FirstPageUrl,PrevPageUrl,NextPageUrl,LastPageUrl,PageCount,prevpage,nextpage,PageStart,PageEnd,i,ipage;
url=""+document.location;
if (url.indexOf("Page=")==-1) {
CurrPage=1;
}
else {
re=/(/S.*)(Page=/d*)(/S.*|/S*)/g;
CurrentPage=url.replace(re,"$2");
CurrentPage=CurrentPage.replace("Page=","");
//re=/(?:/S{1,}Page=|/D.*)/g;
//CurrentPage=url.replace(re,"");
url=url.replace("&Page="+CurrentPage,"");
url=url.replace("Page="+CurrentPage+"&","");
url=url.replace("Page="+CurrentPage,"");
}
url+=(url.indexOf("?")==-1)?"?":"&";
url=url.replace("?&","?");
url=url.replace("&&","&");
function FromatPage(str,StartNum,EndNum) {
str+="";
if (str.length>=1) {
mynum=parseInt(str,10);
if (isNaN(mynum)) {
mynum=StartNum;
}
else {
if (EndNum>-1) {
mynum=(mynum<StartNum)?StartNum:mynum;
mynum=(mynum>EndNum)?EndNum:mynum;
}
else {
mynum=(mynum<StartNum)?StartNum:mynum;
}
}
}
else {
mynum=StartNum;
}
return (mynum);
}
function CheckPage(iPageCount) {
url+='&Page=';
url=url.replace("?&","?");
url=url.replace("&&","&");
ipage=showoPage.value;
location.href(url+FromatPage(ipage,1,iPageCount));
}
function ShowoPage(Tabstart,Tabend,CurrPageFont1,CurrPageFont2,PageCountFont1,PageCountFont2,PrePageFont1,PrePageFont2,RecCountFont1,RecCountFont2,FirstFont,PrevFont,NextFont,LastFont,Jump,PageNumFont1,PageNumFont2,PageNumFont3,PageNumFont4,LinkFont1,LinkFont2,LinkFont3,LinkFont4,iRecCount,iRecPerPage,iPageNum) {
RecCount=FromatPage(iRecCount,0,-1);
RecPerPage=FromatPage(iRecPerPage,1,-1);
PageNum=FromatPage(iPageNum,0,-1);
PageCount=(RecCount%RecPerPage==0)?(RecCount/RecPerPage):(FromatPage((RecCount/RecPerPage),0,RecCount)+1);
CurrPage=(PageCount>0)?(FromatPage(CurrentPage,1,PageCount)):(FromatPage(CurrentPage,0,PageCount));
prevpage=FromatPage((CurrPage-1),1,PageCount);
nextpage=FromatPage((CurrPage+1),1,PageCount);
if (CurrPage<=1&&PageCount<=1) {
FirstPageUrl=" "+LinkFont3+FirstFont+LinkFont4+" ";
PrevPageUrl=" "+LinkFont3+PrevFont+LinkFont4+" ";
NextPageUrl=" "+LinkFont3+NextFont+LinkFont4+" ";
LastPageUrl=" "+LinkFont3+LastFont+LinkFont4+" ";
}
else if (CurrPage==1&&PageCount>1) {
FirstPageUrl=" "+LinkFont3+FirstFont+LinkFont4+" ";
PrevPageUrl=" "+LinkFont3+PrevFont+LinkFont4+" ";
NextPageUrl=" <A href=/""+url+"Page="+nextpage+"/">"+LinkFont1+NextFont+LinkFont2+"</A> ";
LastPageUrl=" <A href=/""+url+"Page="+PageCount+"/">"+LinkFont1+LastFont+LinkFont2+"</A> ";
}
else if (CurrPage==PageCount) {
FirstPageUrl=" <A href=/""+url+"Page=1/">"+LinkFont1+FirstFont+LinkFont2+"</A> ";
PrevPageUrl=" <A href=/""+url+"Page="+prevpage+"/">"+LinkFont1+PrevFont+LinkFont2+"</A> ";
NextPageUrl=" "+LinkFont3+NextFont+LinkFont4+" ";
LastPageUrl=" "+LinkFont3+LastFont+LinkFont4+" ";
}
else {
FirstPageUrl=" <A href=/""+url+"Page=1/">"+LinkFont1+FirstFont+LinkFont2+"</A> ";
PrevPageUrl=" <A href=/""+url+"Page="+prevpage+"/">"+LinkFont1+PrevFont+LinkFont2+"</A> ";
NextPageUrl=" <A href=/""+url+"Page="+nextpage+"/">"+LinkFont1+NextFont+LinkFont2+"</A> ";
LastPageUrl=" <A href=/""+url+"Page="+PageCount+"/">"+LinkFont1+LastFont+LinkFont2+"</A> ";
}
PageStart=FromatPage((CurrPage-PageNum),1,PageCount);
PageEnd=FromatPage((CurrPage+PageNum),1,PageCount);
document.write (CurrPageFont1+CurrPage+CurrPageFont2+PageCountFont1+PageCount+PageCountFont2+PrePageFont1);
document.write (RecPerPage+PrePageFont2+RecCountFont1+RecCount+RecCountFont2+FirstPageUrl+PrevPageUrl);
if (CurrPage>=1) {
for (i=PageStart;i<=PageEnd;i++) {
if (i!=CurrPage) {
document.write (" <A href=/""+url+"Page="+i+"/">"+PageNumFont1+i+PageNumFont2+"</A> ");
}
else {
document.write (" "+PageNumFont3+i+PageNumFont4+" ");
}
}
}
document.write (NextPageUrl+LastPageUrl+Jump);
//1、用户输入方式
//document.write ("<INPUT type=/"text/" id=/"showoPage/" size=/"5/" maxlength=/"10/" onkeydown=/"if (event.keyCode==13) CheckPage("+PageCount+")/">");
//document.write ("<INPUT type=/"button/" value=/"Go/" onClick=/"CheckPage("+PageCount+")/">"+Tabend);
//2、用户选择方式
document.write ("<select id=/"showoPage/" onChange=/"CheckPage("+PageCount+")/">");
for(i=1;i<=PageCount;i++) {
if(i==CurrPage)
{
document.write ("<option value=" + i + " selected>" + i + "</option>")
}
else
{
document.write ("<option value=" + i + ">" + i + "</option>")
}
}
document.write ("</select>"+Tabend);
}
- Oracle分页类
- php+oracle 分页类
- Oracle分页工具类+分页对象JavaBean
- oracle分页
- oracle分页
- Oracle分页
- Oracle分页
- oracle分页
- oracle分页
- oracle分页
- oracle分页
- oracle分页
- oracle分页
- Oracle分页
- oracle分页
- Oracle分页
- Oracle分页
- Oracle 分页
- John Carmack密码
- 再纪念一下~
- Web Services Attachments 协议
- 用JS脚本实现本地和远程图片或声音文件预览
- 如何获取网卡MAC、硬盘序列号、CPU ID、BIOS编号(转载)
- Oracle分页类
- UML三个基本构造块之一 事物
- Proxool CVS 地址
- SQL标准联接
- Web Service简介
- 笔记本的硬件知识
- CTDP linux 程序员手册 C和C++编程(4)Linux POSIX 系统的兼容型
- GridView没有数据时显示表头
- 由国内到国外:软件推广成功之路