NextreCordsetとGetRowsはほとんど使用できません!
私は最近それを使用しました、良いことです!
バッチクエリを増やすのに非常に効果的であり、クエリレコードセットはそれほど大きくありません。
nextrecordsetとgetRowsはレコードセットの2つのプロパティです(#$#$のプロパティまたは方法を混乱させることがよく、それらの違いを理解できません)
getRows --->抽出されたレコードセットレコードは、2次元配列に設定されます。レコードセットデータの動作は、配列に転送されます。メタデータ操作を使用せずに、レコードセットを早期に切断できます。 rs.movnext、wherenotrs.eofなどは保存できます。
nextrecordset ---->は、現在の作業を残し、複数のクエリが一度に送信され、複数のレコードセット結果セットが形成されたときに2番目のレコードセットに転送するレコードセットを提供することです!
それは主に複数の選択によって形成された結果セットの場合に使用されます
例は次のとおりです。
dimsql、rs、arra、arrb、rowsa、rowsb
'======データベースライブラリレコードを抽出====
(adodb.connectionの接続部分は省略されています。
SQL = "SelectCa1、Ca2、Ca3、Ca4-FromTablea" '' ------------- Selecta
sql = sql& "selectcb1、cb2、cb3、cb4、cb5-fromtableb" '' ------------- selectb
setrs = conn.execute(sql)
''実行結果には2つの選択結果セットがあり、最初の選択のレコードセットは現在アクティブです
arra = rs.getRows '' ---------- SelectAreCordsetの2D配列を取得します
setrs = rs.NextreCordset
'' --------------------最も重要なステップは、NextreCordsetを使用して次のレコードセットをアクティブにすることです
arrb = rs.getrows '' -------- 2番目のselectbrecordsetの2次元配列を再度取得します
rs.close
setrs = nothing '' --------データベースオブジェクトをできるだけ早くリリースし、レコードセットを閉じる
conn.close
setConn =何もない
このようにして、データベースに関するすべてのデータはきれいに抽出され、データベースリソースは早い時期にリリースされます。
'' ---------- //
'' ========取得したarraarrbを使用してページ処理を実行し、データ結果を表示======
'' arra = getRows後に取得したアレイ、最初の寸法は列を表し、2番目の寸法は行を表すことに注意してください
rowsa = ubund(arra、2) '' ---- ARRAの2番目の寸法添え付けを抽出します。
rowsb = ubund(arrb、2) '' ----上記と同じ、arrbの2番目の寸法添え付けを抽出します
''データループの実行:
''最初の選択テーブルのループ
Response.Write "<table>"
fori = 0torowsa
Response.Write "<tr>
Response.Write "<td>"&arra(i、0)& "</td>" '' tablea.ca1
Response.Write "<td>"&arra(i、1)& "</td>" '' tablea.ca2
Response.Write "<td>"&arra(i、2)& "</td>" '' tablea.ca3
Response.Write "<td>"&arra(i、3)& "</td>" '' tablea.ca4
Response.Write "</tr>"
次
Response.Write "</table>
'' 2番目の選択テーブルループ