多くの紹介文を読んだ後、set rs=conn.execute(sql) の実行効率は rs.open sql,conn,1,1 よりもはるかに高いことがわかりましたが、set rs=conn の実行方法は多数あります。欠点としては、まず、rs.pagesize、rs、absolutepage などのページング属性がありません。この場合は、このように設定します。 rs=conn.execute(sql)の実行速度は速くなりますが、通常の方法ではページングできません。 ?
翌日、インターネットで情報を確認し、必要なデータを配列に入れて、その配列をページネーションすることができないか考えました。まず、set rs=conn.execute(sql) のクエリ結果を取り出し、rs.getrows() で配列に添付したので、さまざまな Web サイトでページネーションの投稿を探しましたが、効率の良いページネーションの投稿がたくさんありました。 (ストアドプロシージャなども含む)と思ったのですが、すべてSQLで実行する必要がある、つまりページをめくるときにSQL文を実行する必要があることがわかり、この時は頭がクラクラしてSQL文だけが最適化されています。現時点では本当に方法がないので、自分でやるしかありません。ようやく、配列のページネーションのラフが完成しました。コードはまだ完成していません。みんなで勉強しましょう。コードは次のとおりです。
まず、index.asp クエリ ページがあります。
<html xmlns=http://www.w3.org/1999/xhtml>
<頭>
<meta http-equiv=Content-Type content=text/html;
<title>無題のドキュメント</title>
</head>
<body><FORM id=SearchForm name=SearchFormメソッド=ポストアクション=search.asp?act=cha>
<div クラス=入力>
<input id=keyword onmouseover=this.focus() title=メッセージ記録を素早く検索 onfocus=this.select() class=in maxlength=35 name=keyword />
<select style=width:120px;margin-top:-25px name=チャンネルID>
<option value=k2>コメントを残す</option>
<option value=k1>メッセージの内容</option>
</選択>
<入力 ID=search_btn タイプ=送信値=クエリ>
</div>
</FORM>
</body>
</html>
search.asp コード:
<html xmlns=http://www.w3.org/1999/xhtml>
<頭>
<meta http-equiv=Content-Type content=text/html;
<title>無題のドキュメント</title>
</head>
<本文>
<%
request.querystring(act)=cha の場合 次に
search_type=リクエスト.FORM(チャンネルID)
キーワード=リクエスト.フォーム(キーワード)
if search_type=k1 then 'メッセージの内容に従って検索
sql=select * from gbook_rec where g_content like '%&keywords&%'
ElseIf search_type=k2 then
'if search_type=k2 then 'メッセージを残した人に従って検索します
sql=select * from gbook_rec where g_name like '%&keywords&%'
それ以外
応答.終了
endIf
rs=conn.execute(sql) を設定します。
rs.eof と rs.bof の場合
%>
<div class=search>探しているレコードが見つかりません! </div>
<%
応答.終了
それ以外
aResults=rs.getrows()' データを取り出して配列ROWに入れる
アプリケーション(データ)=a結果
rs=何も設定しない
conn.close 'データベースを閉じます
終了IF
終了する場合
aResults=アプリケーション(データ)
Dim i、行、ページサイズ、epage、numb、ページ数、fenye
numb=UBound(aResults,2)+1 '記録された行の総数
pagesize=2 'ページあたりのアイテム数
If numb Mod pagesize = 0 then '総ページ数を判定
pagecount=Int(数値/ページサイズ)
それ以外
ページ数=Int(数値/ページサイズ)+1
終了する場合
epage=リクエスト.クエリ文字列(ページ)
epage= の場合、epage=1
i=(epage-1)*pagesize の場合 epage*pagesize-1 へ
i>UBound(aResults,2) または i<0 の場合、終了します。
%>
<div クラス=コンテンツ>
<ul><li>記録<%=i+1%></li>
<li>コメントを残す: <%=aResults(1,i)%></li>
<li>コンテンツ: <%=aResults(2,i)%></li>
<li>時間:<%=aResults(3,i)%></li>
<li>IP:<%=aResults(5,i)%></li>
</ul>
</div>
<%
次
num > ページサイズの場合
fenye=<a href=search.asp?page=1>ホームページ</a>
fenye=fenye&<a href=search.asp?page=&epage-1& title=&epage-1&>前のページ</a>
fenye=fenye&<a href=search.asp?page=&epage+1& title=&epage+1&>次のページ</a>
fenye=fenye&<a href=search.asp?page=&pagecount&>最後のページ</a>
フェニエ=フェニエ&<BR>
fenye=fenye&合計ページ数 &pagecount&、現在のページ &epage&、合計レコード: &numb
応答.書き込みフェニエ
次の場合に終了
%>
</body>
</html>
要約: 上記のコードは、最初のクエリを除いてデータベースに接続する必要がなく、それ以外の場合はデータベースに接続する必要がないため、大規模なデータをクエリするときや、データが存在する場合にリソースを節約するのに非常に役立ちます。たくさんの人が繋がっています!さらに、クエリ配列はアプリケーション オブジェクトに保存され、アプリケーション(データ)(ユーザー名)に基づいて誰かが何をクエリしたかを判断することもできます。ただし、このコードは最初のモデルであり、全員の努力によって改善する必要があります。未来!皆さんも注目して応援していただければ幸いです、ありがとう!
テスト.rar