ASPページネーションクラスの葉

葉をページング、現在のバージョンは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の

エンドクラス%>

公開された16元の記事 ウォンの賞賛1 ビュー30000 +

おすすめ

転載: blog.csdn.net/wvtjplh/article/details/3841765