葉をページング、現在のバージョンは0.04ベータ版で、今<最初のページから最後のページジャンプへ= 32ミリ秒は、直接することができウィットタブ最速の方法、唯一の平均で回す高速ページを見ています200ミリ秒で制御
<LANGUAGE = "VBSCRIPT" CODEPAGE = "936" %@%>
<! - #ファイル= "Cls_ShowoPage.asp"が含まれる- >
<%
「================ =================================================
"タイトル:クラス-acの典型的なコールページングASP葉
: 'ShowoPage(ASPクラス)名
RCSfile:pageAC.asp'
'リビジョン:0.04Beta
'著者:yezi(葉)
'日:2005-01-21夜05時50分10秒を
'説明:ASPページがアクセス/ MSSQL / MySQLの/ pgSQLに/オラクルのサポートのクラス交流デモンストレーション呼び出す
':QQ:311 673、MSN:ishows @ msn.com、HTTP:名刺//www.showo.comを
' ====== ================================================== =========
「------------------------------------------------- ----------------------------------------------
でのエラーは次の再開します
STARTIME DIM、終了時刻
「実行時間統計
STARTIMEタイマー=()
」データベースに接続
DIM Dbは、コネティカット、のルピー
Dbを=「プロバイダ= Microsoft.Jet.OLEDB.4.0;データソース=」&Server.MapPathの(「db.mdb」)
コネティカット= Server.CreateObjectにSET( "ADODB.Connectionの")
conn.Open Dbを
「-------------------------------- -------------------------------------------------- -------------
%>
<HTML>
<HEAD>
<TITLE> ASPの葉の典型的なコール・ページングクラス-access </ TITLE>
<META HTTP-当量= "型コンテンツ"コンテンツ= "テキスト/ HTML;のcharset = 2312 ">
<リンクのrel ="このスタイルシート」href = "page.css"タイプ= "テキスト/ cssの">
</ head>の
<ボディBGCOLOR = "#FFFFFFの" テキスト= "#000000">
<表幅= "760"ボーダー= "1" CELLSPACING = "0" CELLPADDING =" 4" ALIGN =左= "センター" borderColorDark = "#1 FFFFFF" bordercolorlight = "#1 CCCCCC">
<TR ALIGN =左= "センター">
<TD幅= "60"> ID </ TD>
<TD幅= "150">タイトル</ TD>
<TD幅= "*">コンテンツ(20個の文字を表示する前に)</ TD>
<TD幅=「150 ">時間</ TD>
</ TR>
<%
点心ORS
設定新しい新しいCls_ShowoPage ORS = 'オブジェクトを作成
ORSで
データベース接続オブジェクト.Conn =コネティカット'が得
AC「.DbType ="
MSSQLは、アクセスするには、「データベースの種類、ACをSQLServer2000を、MSSQL_SP記憶手順版は、MySQLなどのMYSQL、PGSQLは、PostgreSQLさ
.RecType = 0
「の記録処理の総数(0実行回数を取ります1書き込みSQL文、2の固定値)からとら
.RecSql = 0
「= 1、= RECTYPE記録SQLステートメントを取る場合、= 2値の場合、等しい= 0 『』
= 0 .RecTerm
」記録条件から採取が変化した又は(0変化なし、変更1、2は、検索時間の設定クッキータイムリーな統計ではありません)
.CookieName = "recac" 'の場合RecTerm = 2、cookiesname = "" 、それ以外の場合は書き込みcookiesname
.ORDER 0 ='対応するソート鍵IDに、メインSQL以下の(1つの0降順)、注意を払うソート
.PageSize = 30「は、各々のレコードのページ番号ん
.JsUrl = "" 'パスshowo_page.jsの
ID、AAAA、BBBB .SQL = "CCCCする$ TABLE1 $$$ ID"' フィールド、テーブル、条件(なし)、ソート(不要ORDER BY)、プライマリキーID
ENDで
iRecCount = ors.RecCount() '记录总数
IRS = ors.ResultSet()'返回ResultSetの
場合iRecCount <1%そして>
<TR BGCOLOR = "">
<TD>暂无记录</ TD>
</ TR>
<%
そうでなければ
iは0〜UBOUND(IRS、2)=の場合
はbgColor = "#1 FFFFFF"
私は国防省場合2 = 0、次にはbgColor = "#DFEFFF"
%>
<TR BGCOLOR = "<%=はbgColor%>">
<TD幅= "60"> <%= IRS(0、I)%> </ TD>
<TD幅= "150"> <%= IRS(1、I)%> </ TD>
<TD幅= "*"> <%=左(IRS(2、I)、20)%> </ TD>
<TD幅= "150"> <%= IRS(3、I)%> </ TD>
</ TR> <%
次に
END IF
%>
</ TABLE>
<テーブル幅= "760"国境= "0" CELLSPACING = "2" CELLPADDING = "2" ALIGN = "センター">
<TR>
<TD>
<%ors.ShowPage()%>
</ TD>
</ TR>
</ TABLE>
<テーブル幅= "760"国境= "0" ALIGN = "中心" CELLPADDING = "2" CELLSPACING = "2">
< TR>
<TD ALIGN = "センター">
<%ENDTIME =タイマー()%>
本页面执行时间:<%= FormatNumber関数((終了時刻-STARTIME)* 1000,3)%>毫秒</ TD>
</ TR>
</ TABLE>
</ body>
</ HTML>
<%
IRS = NULL
ORS = NULL
セットORS =何も
%>
<%
「=============================================== ==================
'名前:ASPの葉ページングクラス
の' name:ShowoPage(ASPクラス)
"RCSfile:Cls_ShowoPage.asp
'リビジョン:0.04Beta
'著者:yezi(葉)
'日付:2005-01-21午後5時50分10秒
'の説明:ASPページネーションクラスのサポートアクセス/ MSSQL / MySQLの/ pgSQLの/ Oracleの
「ビジネスカード:QQ:311 673、MSN:ishows @ msn.com、HTTP:// www.showo.com
「============================================ =====================
クラスCls_ShowoPage
プライベートShowo_PageSize、Showo_CurrPage
プライベートShowo_Conn、Showo_DbType、Showo_RecType、Showo_RecSql、Showo_RecTerm、Showo_CookieName
プライベートS_Order、Showo_JsUrl
プライベートShowo_Sql、Showo_Field、Showo_Table、Showo_Where、Showo_OrderBy、Showo_Id
プライベートShowo_RecCount、Showo_PageCount、ResultSet_Sql
プライベートShowo_Cm、Showo_WhereOther、Showo_Order、Showo_Size、Showo_Mm 「MSSQL用
「================================================= ===============
「に、Class_Initializeクラスの初期化
」============================= ===================================
ます。Private Subに、Class_Initialize
Showo_PageSize = 10「はページあたりのレコード数を設定しますデフォルト値は10です
Showo_CurrPage = CHECKNUM(トリム(リクエスト( "ページ")),. 1、-1)の現在の顔の値を取得
Showo_Orderを= ">"「デフォルトのソート
'ソートデフォルトShowo_Size = "MAX"
Showo_WhereOther = ""'デフォルトでは
End Subの
「================================================= ===============
でCONN得られたデータベース接続オブジェクト
'============================ ====================================
公開プロパティレッツコネティカット(ByValのobjConn)
を設定しShowo_Conn = objConn
エンドプロパティ
「================================================= ===============
「のDbTypeを与えるために、データベースの種類
」============================= ===================================
公開プロパティレッツのDbType(ByValのstrDbType)
Showo_DbType = strDbType
エンドプロパティ
「================================================= ===============
「取らRECTYPE記録方法合計(0実行回数、書き込み、2の固定値から取られた1 SQL文)
」============ ================================================== ==
公開プロパティレッツRECTYPE(ByValのintRecType)
Showo_RecType = CHECKNUM(intRecType、0,2)
エンドプロパティ
「=========================== =====================================
取らRECTYPE = 1、= SQL文のレコードが'RecSql'値= 2は=「」0に等しい場合
「===================================== ===========================
公開プロパティレッツRecSql(ByValのstrRecSql)
Showo_RecSql = strRecSql
エンドプロパティ
「================================================= ===============
「RecTerm検索条件の変化(変化なし0,1変化)が
」=================== =============================================
公開プロパティレッツRecTerm( intRecTermのByVal)
Showo_RecTerm = CHECKNUM(intRecTerm、0,2)
エンドプロパティ
「================================================= ===============
'のCookieName取得のCookieName
' ============================== ==================================
公開プロパティレッツのCookieName(ByValのstrCookieName)
Showo_CookieName = strCookieName
エンドプロパティ
「================================================= ===============
'注文排序(0顺序、1降序)
' ======================== ========================================
公開プロパティレッツ注文(ByValのintOrder)
S_Order = CHECKNUM(intOrder、0,1)
S_Order = 1次に場合は
Showo_Order = "<"
Showo_Size = "MIN"
END IF
エンドプロパティ
「================================================= ===============
「レコードがPageSize番号は各ページ、デフォルトのレコード10のために提供される
」===================== ===========================================
公開プロパティレッツがPageSize(ByValのintPageSize )
Showo_PageSize = CHECKNUM(intPageSize、Showo_PageSize、-1)
エンドプロパティ
「================================================= ===============
'JsUrlはshowo_page.jsパスを作った
' ========================== ======================================
公開プロパティレッツJsUrl(ByValのstrJsUrl)
Showo_JsUrl = strJsUrl
終了プロパティ
「================================================= ===============
'SQLの取得SQL所需表字段条件排序、输入:字段、表、条件、排序、主ID
' =========== ================================================== ===
公開プロパティレッツSQL(ByValのstr_sql)
Showo_Sql =スプリット(str_sql、 "$")
Showo_Field = Showo_Sql(0)
Showo_Table = Showo_Sql(1)
Showo_Where = Showo_Sql(2)
Showo_OrderBy = Showo_Sql(3)
Showo_Id = Showo_Sql(4 )
レン(Showo_Where)> = 3その後、もし
Showo_WhereOther = "そして"&Showo_Where
Showo_Where =" "&Showo_Where
END IF
もしレン(Showo_OrderBy)> 3次にShowo_OrderBy =" ORDER BY" &Showo_OrderBy
エンドプロパティ
「================================================= ===============
'GetRecCount取得记录总数
' ============================= ===================================
プライベート関数GetRecCount()
のSelect Case Showo_RecType
ケース1
GetRecCount = Showo_Conn.execute (Showo_RecSql、0,1)(0)
ケース2
GetRecCount = CHECKNUM(Showo_RecSql、0、-1)、
それ以外のケース
(&Showo_Table& " "&Showo_Where、0,1" FROM)" "SELECT COUNT(" Showo_Id &&)GetRecCount = Showo_Conn.execute (0)
エンドを選択
エンド機能
「========================================== ======================
'RECCOUNT修正记录总数
'================================================== ==============
公共プロパティのGet RECCOUNT()
RECCOUNT = Request.Cookies( "ShowoPage")(Showo_CookieName)
RECCOUNT = CHECKNUM(RECCOUNT、0、-1)
のSelect Case Showo_RecTerm
ケース1
RECCOUNT = GetRecCount()
Response.Cookies( "ShowoPage")(Showo_CookieName )= RECCOUNT
ケース2
RECCOUNT = GetRecCount()
ケースエルス
の場合RECCOUNT = 0その後
RECCOUNT = GetRecCount()
Response.Cookies( "ShowoPage")(Showo_CookieName)= RECCOUNT
END IF
エンドを選択
エンドプロパティ
「================================================= ===============
「ResultSetのレコードセット]タブの後に戻って
」========================== ======================================
公共プロパティのResultSetのGet()
ResultSetのヌル=
「レコードの合計数
= RECCOUNT Showo_RecCount()
'このページ
であればShowo_RecCount> 0次に
'のページ
であれば(Showo_RecCount Showo_PageSize MOD)= 0次に
Showo_PageCount = Showo_RecCount / Showo_PageSize
エルス
Showo_PageCount = Showo_RecCount / Showo_PageSize + 1つの
END IF
「このページ
Showo_CurrPage = CHECKNUM(Showo_CurrPage、1 、Showo_PageCount)
のSelect Case Showo_DbType
ケース"AC"「ACデータベース
セットShowo_Rs = Server.CreateObjectに( "ADODB.Recordsetの")
ResultSet_Sql = "SELECT "&Showo_Field&Showo_Table &&" FROM "" "&Showo_Where&"" &Showo_OrderBy
Showo_Rs.Open ResultSet_Sql、Showo_Conn、1,1、&H0001
Showo_Rs.AbsolutePosition =(Showo_CurrPage-1) * Showo_PageSize + 1
ケース"MSSQL"「SQLServer2000を数据库
Showo_CurrPage = 1次に場合
ResultSet_Sql = "SELECT TOP "&Showo_PageSize&" "&Showo_Field&" "Showo_Table&Showo_Where&&" FROM "&Showo_OrderBy
エルス
ResultSet_Sqlは=" SELECT "(SELECT TOP FROM&Showo_Size&"(" &Showo_Id& ") 「&"Showo_Table&Showo_Where&&" "&Showo_OrderBy&")AS tmpTable "FROM(Showo_CurrPage-1)* Showo_PageSize&" "&Showo_Id&"
Showo_Mm = Showo_Conn.execute(ResultSet_Sql、0,1)(0)
ResultSet_Sql = "SELECT TOP "&Showo_PageSize&" "&Showo_Field&" "&Showo_Table&" "&Showo_Id&Showo_Order&Showo_Mm&Showo_WhereOther&" "&Showo_OrderBy FROM
END IF
設定Showo_Rs = Showo_Conn.execute(ResultSet_Sql)
ケース"MSSQL_SP"「SQLServer2000を数据库存储过程版
セットShowo_Rs = Server.CreateObjectに(" ADODB.Recordsetの")
を設定Showo_Cm = Server.CreateObjectに("は、ADODB.Command ")
Showo_Cm.CommandType = 4
Showo_Cm.ActiveConnection = Showo_Conn
Showo_Cm.CommandText =" SP_ShowoPage」
Showo_Cm.parameters(1)= Showo_CurrPage
Showo_Cm。パラメータ(2)= Showo_PageSize
Showo_Cm.parameters(3)= Showo_Field
Showo_Cm.parameters(4)= Showo_Table
Showo_Cm.parameters(5)= Showo_Where
Showo_Cm.parameters(6)= Showo_WhereOther
Showo_Cm.parameters(7)= Showo_OrderBy
Showo_Cm.parameters(8)= Showo_Id
Showo_Cm.parameters(9)= Showo_Size
Showo_Cm.parameters(10)= Showo_Order
Showo_Rs。 CursorLocationは= 1
Showo_Rs.LockType = 1
Showo_Rs.Open Showo_Cm
ケースエルス「其他情况按最原始的方法处理
設定Showo_Rs = Server.CreateObjectに( "ADODB.Recordsetの")
ResultSet_Sql = "SELECT "&Showo_Table&&" FROM "Showo_Field&" "&Showo_Where&" 「&Showo_OrderBy
Showo_Rs.Open ResultSet_Sql、Showo_Conn、1,1、&H0001
Showo_Rs。AbsolutePosition =(Showo_CurrPage-1)* Showo_PageSize + 1
の終了を選択
ResultSet = Showo_Rs.GetRows(Showo_PageSize)
Showo_Rs.close
設定Showo_Rs =何も
END IF
エンドプロパティ
「================================================= ===============
「入力:チェックフィールド、番号を開始する(デフォルト数)、数字の終わり(-1サイズがチェックされていない)
」========== ================================================== ====
プライベート関数CHECKNUM(ByValのはstrstr、ByValのintStartNum、ByValのintEndNum)
CHECKNUM = intStartNum
場合IsNumeric関数(はstrstr)次にCHECKNUM = CLNG(はstrstr)
場合intEndNum> -1Then
場合CHECKNUM <CHECKNUM = intStartNum intStartNumそして
場合CHECKNUM>次にintEndNum = intEndNum CHECKNUM
END IF
エンド機能
「================================================= ===============
'Class_Terminate类注销
' ============================== ==================================
ます。Private Sub Class_Terminate()
の場合ISOBJECT(Showo_Conn)次に
Showo_Conn.Close
セットShowo_Conn =何も
END IF
End Subの
「================================================= ===============
'上下页部分
' ============================== ==================================
ます。Public Sub SHOWPAGE()%>
<SCRIPT LANGUAGE = "JavaScriptの"タイプ= "テキスト/ JavaScriptを" SRC = "<%= Showo_JsUrl%> showo_page.js"> </ SCRIPT>
<SCRIPT LANGUAGE = "JavaScriptを">
ShowoPage(「<テーブルスタイル= 'BORDER-COLLAPSE:崩壊' BORDERCOLOR = '#111111'高さ= '10' CELLSPACING = '0' CELLPADDING = '0'幅= '95%」国境= '0'> <TR> <TD VALIGN = '下'スタイル= 'フォントファミリ:MS Pゴシック、宋体;フォントサイズ:11.5px;行の高さ:15ピクセル'> " "</ TD> </ TR> </ TABLE>"、"页次<フォント色= '赤'> " "</フォント> /"、 ""、 "&NBSP;"、 "&NBSP;每页<フォント色= '赤'>"、" </フォント>&NBSP ; " "&NBSP;共计:<フォント色= '赤'>"、" </ FONT> </ TD> <TD VALIGN = '下' ALIGN = '右'スタイル= "フォントファミリ:MS Pゴシック、宋体;フォントサイズ:11.5px;行の高さ:15ピクセル'> 『』 <フォントフェース= webdings> 9 </フォント> " "<フォントフェイス= webdings> 7 </フォント>"、 "<フォントフェイス= webdings> 8 </フォント>"、" <フォントフェイス= webdings>:</フォント>」、 "&NBSP;&NBSP;跳转:"、 "<フォント色= 'オレンジ'>"、 "</フォント>"、 ""、 ""、 "<フォント色= '赤'>" 、 "</フォント>"、 ""、 ""、<%= RECCOUNT()%>、<%= Showo_PageSize%>、2)
</ SCRIPT>
<%End Subの」、 "<フォント色= '赤'>"、 "</フォント>"、 ""、 ""、<%= RECCOUNT()%>、<%= Showo_PageSize%>、2) </ SCRIPT> <% End Subの」、 "<フォント色= '赤'>"、 "</フォント>"、 ""、 ""、<%= RECCOUNT()%>、<%= Showo_PageSize%>、2) </ SCRIPT> <% End Subの
エンドクラス%>