Nextrecordset 및 getrows는 거의 사용되지 않을 수 있습니다!
나는 최근에 그것을 사용했는데, 좋은 일!
배치 쿼리를 늘리는 데 매우 효과적이며 쿼리 레코드 세트는 크지 않습니다.
Nextrecordset과 getrows는 레코드 세트의 두 가지 속성입니다 ( #$ #$의 속성이나 방법을 혼동하고 그 사이의 차이점을 알 수는 없습니다).
getrows ---> 레코드 세트 레코드를 2 차원 배열로 추출하십시오. 레코드 세트 데이터의 동작은 배열로 전송됩니다. 메타 데이터 작업을 사용하지 않고 레코드 세트를 일찍 연결 해제 할 수 있습니다. rs.movnext, whilenotrs.eof 등을 저장할 수 있습니다.
Nextrecordset ---->는 여러 쿼리가 한 번에 제출되고 여러 레코드 세트 결과 세트가 형성 될 때 현재 작업을 떠나 두 번째 레코드 세트로 전송하는 레코드 세트를 제공하는 것입니다!
주로 여러 select에 의해 형성된 결과 세트의 경우에 사용됩니다.
예는 다음과 같습니다.
Dimsql, Rs, Arra, Arrb, Rowsa, RowsB
''====== Database Library 레코드 추출 ====
(conn.openconnstr를 가정하면 adodb.connection의 연결 부분이 생략 됨)
SQL = "SelectCa1, CA2, CA3, CA4FromTablea" ''----------------------
SQL = SQL & "SelectCb1, CB2, CB3, CB4, CB5FromTableB" '---------------
setrs = conn.execute (SQL)
``실행 결과에는 두 개의 선택 결과 세트가 있으며 첫 번째 선택의 레코드 세트는 현재 활성화되어 있습니다.
Arra = rs.getrows ''---------- SelectArecordset의 2D 배열을 가져옵니다
setrs = rs.nextrecordset
'' '-------------------------------------------------------------------------------------------------------------------------------------- 가장 중요한 단계는 Nextrecordset을 사용하여 다음 레코드 세트를 활성화하는 것입니다.
ARRB = rs.getrows ''--------------- 두 번째 SelectBrecordset의 2 차원 배열을 다시 얻습니다
Rs.Close
setrs = nothing ''------- 가능한 빨리 데이터베이스 객체를 릴리스하고 레코드 세트를 닫으십시오.
conn.close
setconn = 아무것도 없습니다
이러한 방식으로 데이터베이스에 대한 모든 데이터는 깨끗하게 추출되고 데이터베이스 리소스는 초기에 해제됩니다.
''---------- //
''========= 획득 한 ARRAARRB를 사용하여 페이지 처리를 수행하고 데이터 결과를 표시합니다 ======
``arra = getrows 이후에 얻은 배열, 첫 번째 치수는 열을 나타내고 두 번째 차원은 행을 나타냅니다.
rowsa = ubund (arra, 2) ''---- 레코드 레코드 레코드를 얻는 것과 동등한 ARRA의 2 차원 첨자 추출
rowsb = ubund (ARRB, 2) '' '----- 위와 동일, ARRB의 두 번째 차원 첨자를 추출
``데이터 루프 수행 :
``첫 번째 선택 테이블의 루프
응답. "<pable>"
fori = 0Torowsa
응답. "<tr>
응답. "<td>"& arra (i, 0) & "</td>" ''tablea.ca1
응답. "<td>"& arra (i, 1) & "</td>" ''tablea.ca2
응답. "<td>"& arra (i, 2) & "</td>" ''tablea.ca3
응답. "<td>"& arra (i, 3) & "</td>" ''tablea.ca4
응답. "</tr>"
다음
응답. write "</table>
``두 번째 선택 테이블 루프