GetRows 메서드는 Recordset 개체의 전체 레코드를 2차원 배열로 가져온다.

문법
<%
     array = Recordset.GetRows(Rows, Start, Fields)
%>

 

개발을 하다보면 대부분 전진전용커서, 읽기전용 수준으로 Recordset 개체를 사용하게 된다.

이때는 전진전용커서 외에 거의 기능을 제공하지 않는 ADODB 경량객체인 ADOR 객체를 사용하면 매우 가볍고 빠르다.

거기에 복잡한 작업은 GetRows 메서드로 배열을 반환받아 처리하고 최대한 빨리 디비를 풀어주면 좋다.

 

매개변수

설명

 Rows       

 선택 사항, 검색할 레코드 개수를 나타내는 식이며 데이터 형식은 Long이다.

 기본 값은 adGetRowsRest(-1)이다.

 Start

 선택 사항, GetRows 메서드가 실행을 시작할 케고드에 대한 Bookmark로 평가되는 값이며                     

 데이터 형식은 String 또는 Variant이다.

 Fields

 선택 사항, 단일 필드 이름, 순서 위치, 필드 이름의 배열 또는 순서 위치 번호 배열을 나타내는 매개변수.

 데이터 형식은 Variant 이다.

 ADO는 이들 필드에 들어 있는 데이터만 반환한다.

 

매개변수 Start는 다음과 같은 BookmarkEnum 값 중 하나를 사용할 수 있다.

상수

설명

 adBookmarkCurrent 

 현재 레코드에서 시작한다.

 adBookmarkFirst

 첫째 레코드에서 시작한다.

 adBookmarkLast

 마지막 레코드에서 시작한다. 

 

<%
'레코드셋을 배열로..
arrList = Rs.GetRows()
 
Response.Write "<table>"
For x = 0 To UBound(arrList,2)
     '행단위 출력
     Response.Write "<tr>"
     For y = 0 To UBound(arrList)
          '열단위 출력
          Response.Write "<td>"& arrList(y,x) &"</td>"
     Next
     Response.Write "</tr>"
Next
Response.Write "</table>"
%>

 

이처럼 Recordset 개체를 2차원 배열로 복사하여 사용할 수 있으며 이때 한가지 주의해야할 것은

첫째 첨자는 필드, 두번째 첨자는 레코드 번호를 나타낸다는 것이다.

흔히 행/열 개념의 2차원 배열이다보니 첫째 첨자가 행단위인 레코드로 생각될 수 있으나, GetRows가 반환한 2차원 배열은 두번째 첨자가 레코드라는 것이다.

 

또 한가지, GetRows를 호출한 뒤에는 읽지 않은 다름 레코드가 현재 레코드가 된다.

다음 레코드가 없으면 EOF 속성이 True로 설정된다.