以下はコードフラグメントです。 '******************************************* ******************************************** ******************************************** ******************************************** ******************************************** ************、******************** '**このプログラム名:「Infinite Stream」ページングプログラム '**著者:アービター(AASX) '**バージョン:百万レベル '** '** qq:22222xx '**メール:[email protected] '** http://www.images.org/ '******************************************* ******************************************** ******************************************** ******************************************** ******************************************** ************、******************** '** '** [著者の言葉] '** '**ページングプログラムは、実際に多くのネットワークプログラム機能の中で、間違いなくより厄介なものです '**ほとんどの人はまだ従来のページング方法(rs.Pagesize = xx)を使用して理解しています '**データベース操作この従来の方法には不利な点があることを知っています。ページが初めて開かれたとき、 '**すべてのレコードセットを読み取ります。 '**ページも非常に遅く、リソースを占有します。 100,000以上のデータ '**ライブラリこの伝統的なページング方法は非常に弱くなりました。 '** する)。このため、私はこのプログラムを行うように促しました。 '** '** [プログラム機能] '** '**大規模なデータベースの場合、理想的な操作データレコードのボリュームは200万人です '**(最大レベルエディションは無数の量を制限します。データベースの大きさに関係なく、ページの回転速度は '**変更されていない)、これは聖Yang 1g、メモリ512、win2kリングのミリオンレベルバージョンのページングプログラムです '**領域内のデータのテスト: '** '** sqlServer 2K 100,000レコードは、ページごとに20個のピースを示しています。 '**平均ページの回転速度:45ms '** sqlserver 2k100万のレコードは、ページごとに20個表示します。 '**平均ページの回転速度:350ms '** '** '** [ページング原則] '** '**このプログラムは、Rs.Pagesizeメソッドをページに使用しなくなり、データベースを接続するカーソルタイプはもはや使用されていません '**はconn、1、x、conn、0,1を使用していません。これは最も速いカーソルタイプでなければなりません。 '**これにより、プログラムが非常に簡単になると考えています。 '**それは私のプログラミングスタイルであるべきであり、複雑なプログラムではありません。 「** "Infinite Stream」のページングの中心は次のとおりです。ページごとに表示する必要があるレコードのみを読んでください。 '** Paglingプログラムはすべてのデータを読み取ります。 '**合理的な速度も大幅に改善されています。特に、データの量が大きい場合、その速度の利点 '**より明白な(約350msのみ)。 '**プログラムが実行されたとき、CurcorbeginとCurcorendによって表示された最初のレコード '**次のページのマークとして、最後のレコードのID値を記録し、次にトップXXを使用して取得します '**必要なデータには表示され、ID値が記録されます。 '** '** [結論] '** '**このプログラムは、さまざまなプログラム愛好家に勉強と使用、再版、広がり、修理のために提供される共有バージョンです '**変更または他の目的に使用されます。著者の努力を尊重し、ソースを示してください。 '**このプログラムにエラーや最適化などの短所がある場合は、www.csdn.net/のWeb開発にアクセスしてください。 '** ASPコラムは、中国のソフトウェア業界の発展のために議論を発行しました、あなた自身で立つことはしないでください:) '** '******************************************* ******************************************** ******************************************** ******************************************** ******************************************** ************、******************** オプションは明示的です 'Response.Flush 薄暗いbegintime、終了時 begintime =タイマー Dim Conn、SQLSTR、RS、DedRecordNum、Cursorbegin、Cursorend、Curpagenum、Hav、Hav DedRecordNum = 20 '-------------関連するパラメーターを取得-------------------------------------------------- ------------------------- if request( "cursorbegin")= "then cursorbegin = 0 else cursorbegin = request(" carsorbegin ")) if request( "cursorend")= "cursorend = 0 else cursorend = request(" cursorend ") リクエストの場合( "curpagenum")<> "then curpagenum = clng(request( "curpagenum") ifurpagenum <= 0 then capagenum = 1 それ以外 curpagenum = 1 ifを終了します hav = request( "hav") hav = ""の場合、hav = "next" '------------------------------------------------------------- -------------------------------------------------------------- ------------------------------------------ '-----------显示翻页内容函数-------- 関数ターンページ(disprecordnum) dim n そうではありません(rs.eof)とn <disprecordnum n = n 1 respons.write "<ter>"&_ "<td bgcolor = 'efefef'>"&rs(0)& "</td>"&_ "<td bgcolor = 'efefef'>"&rs(1)& "</td>"&_ "<td bgcolor = 'efefef'>"&rs(2)& "</td>"&_ "<td bgcolor = 'efefef'>"&rs(3)& "</td>"&_ "<td bgcolor = 'efefef'>"&rs(4)& "</td>"&_ "<td bgcolor = 'efefef'>"&rs(5)& "</td>"&_ "</tr>" "" n = 1の場合、cursorbegin = rs(0) n = dedrecordnumまたはrs.eofの場合、cursorend = rs(0) rs.movenext ウェンド エンド関数 '------------------------------------------------------------- ----------------------------- conn = server.createObject( "adodb.connection")を設定します 'sqlstr = "provider = microsoft.jet.oledb.4.0; data source ="&server.mappath( "mlodata.mdb")) sqlstr = "driver = {sql server}; server = arbiter; uid = arbiter; pwd = 123456; database = mldata" "" "" conn.open sqlstr '---------統計合計記録/合計ページ---------------------------------------------------------- '-PS:推奨カウント(ID)、IDは自動番号とインデックスです。 '-PS:この統計は、このプログラムで最も消費されるリソースの一部です。 Dim TotalRcords、TotalPages SQLSTR = "ABCからRecornsumとしてcount(id)を選択" rs = const.execute(sqlstr、0,1)を設定します TotalRecords = rs( "Recordum") TotalPages = abs(int(totalRecords/defrecordnum*( - 1))) rs.close rs = Nothingを設定します '-------- HAVに基づいて対応するSQL文字列を選択します------ select case(hav) ケース「バック」 cursorend = cursorbegin SQLSTR = "Select Top"&defalecordnum& "_ id、title、filename、k、imgsize、namesson _ ABCからid <"&cursorbegin&_ "and id in(select top"&defrecordnum_ & "ABCからのid where id <"&cursorbegin_ &「IDによる注文DESC)IDによる注文」 ケース「次」 SQLSTR = "Select Top"&dedrecordnum_ &「id、title、filename、k、imgsize、namesson from abc where id> "&cursorend&_ 「IDによる注文」 [選択]を終了します rs = const.execute(sqlstr、0,1)を設定します %>
|