ADO Recordset 객체

예제

GetRows
이 예제에서 GetRows 메서드의 사용 방법을 보여줍니다.

Recordset 객체

ADO Recordset 객체는 데이터베이스 테이블에서 가져온 레코드 셋을 포함합니다. Recordset 객체는 레코드와 열(필드)으로 구성됩니다.

ADO에서는 이 객체가 가장 중요하며, 데이터베이스 데이터를操作하는 데 가장 자주 사용되는 객체입니다.

ProgID

set objRecordset=Server.CreateObject("ADODB.recordset")

Recordset을 처음으로 엽니다면, 현재 레코드 포인터는 첫 번째 레코드를 가리키며 BOF와 EOF 속성은 False입니다. 레코드가 없다면 BOF와 EOF 속성은 True입니다.

Recordset 객체는 두 가지 업데이트 유형을 지원합니다:

  • 立即更新 - Update 메서드를 호출하면 모든 변경 사항이 즉시 데이터베이스에 기록됩니다.
  • 批量更新 - 프로바이더가 여러 변경 사항을 캐시에 저장한 후, UpdateBatch 메서드를 사용하여 이러한 변경 사항을 데이터베이스로 전송합니다.

ADO에서는 4가지 다른 커서(포인터) 유형을 정의했습니다:

  • 동적 커서 - 다른 사용자가 추가, 변경, 삭제한 내용을 볼 수 있습니다.
  • 키셋 커서 - 동적 커서와 유사하지만, 다른 사용자가 추가한 내용을 볼 수 없으며, 다른 사용자가 삭제한 기록에 접근을 차단합니다. 다른 사용자가 데이터를 변경한 내용은 여전히 보여집니다.
  • 정적 커서 - 데이터를 검색하거나 보고서를 생성하는 데 사용할 수 있는 기록 집합의 정적 복사본을 제공합니다. 또한, 다른 사용자가 한 추가, 변경, 제거는 보이지 않습니다. 클라이언트 Recordset 객체를 열 때, 이는 허용되는 유일한 커서 유형입니다.
  • 단방향 커서 - Recordset에서 전진만 가능합니다. 또한, 다른 사용자가 한 추가, 변경, 제거는 보이지 않습니다.

CursorType 속성이나 Open 메서드의 CursorType 매개변수를 통해 커서 유형을 설정할 수 있습니다.

주의사항:모든 제공자(providers)가 Recordset 객체의 모든 메서드와 속성을 지원하지 않습니다.

속성

속성 설명
AbsolutePage Recordset 객체 중 페이지 번호를 지정할 수 있는 값을 설정하거나 반환합니다.
AbsolutePosition Recordset 객체 중 현재 기록의 순서 위치(숫자 위치)를 지정할 수 있는 값을 설정하거나 반환합니다.
ActiveCommand Recordset 객체와 관련된 Command 객체를 반환합니다.
ActiveConnection 연결이 닫혀 있으면 연결 정의를 설정하거나 반환하고, 연결이 열려 있으면 현재 Connection 객체를 설정하거나 반환합니다.
BOF 현재 기록의 위치가 첫 번째 기록 이전이라면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
Bookmark 현재 기록의 위치를 저장하는 북마크를 설정하거나 반환합니다.
CacheSize 缓存的 기록의 수를 설정하거나 반환합니다.
CursorLocation 커서 서비스의 위치를 설정하거나 반환합니다.
CursorType Recordset 객체의 커서 유형을 설정하거나 반환합니다.
DataMember DataSource 속성에 참조하는 객체에서 검색할 데이터 멤버의 이름을 설정하거나 반환합니다.
DataSource Recordset 객체로 표시되는 데이터를 포함하는 객체를 지정합니다.
EditMode 현재 기록의 편집 상태를 반환합니다.
EOF 현재 기록의 위치가 마지막 기록 이후라면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
Filter Recordset 객체 중 데이터에 대한 필터를 반환합니다.
Index Recordset 객체의 현재 인덱스의 이름을 설정하거나 반환합니다.
LockType Recordset의 일련의 기록을 편집할 때, 잠금 유형 값을 지정할 수 있습니다.
MarshalOptions 서버로 반환되는 기록을 지정하는 값을 설정하거나 반환합니다.
MaxRecords 쿼리로부터 Recordset 객체로 반환할 수 있는 최대 레코드 수를 설정하거나 반환합니다.
PageCount Recordset 객체 중의 데이터 페이지 수를 반환합니다.
PageSize Recordset 객체의 하나의 페이지에 허용할 수 있는 최대 레코드 수를 설정하거나 반환합니다.
RecordCount Recordset 객체 중의 레코드 수를 반환합니다.
Sort Recordset 정렬 기준으로 사용할 필드 이름을 설정하거나 반환합니다.
Source 문자열 값을 설정하거나 Command 객체 참조를 반환하거나 Recordset 객체의 데이터 소스를 설명할 수 있는 문자열 값을 반환합니다.
State Recordset 객체가 열려 있거나 닫혀 있거나 연결 중이거나 실행 중이거나 데이터를 가져오고 있는지 설명할 수 있는 값을 반환합니다.
Status 批量更新나 다른 대규모 작업의 현재 레코드 상태에 대한 정보를 반환합니다.
StayInSync 부모 레코드 위치가 변경될 때 자식 레코드 참조가 변경되는지 설정하거나 반환합니다.

메서드

메서드 설명
AddNew 새 레코드를 생성합니다.
Cancel 한 번의 실행을 취소합니다.
CancelBatch 批量更新를 취소합니다.
CancelUpdate Recordset 객체의 하나의 레코드에 대한 변경을 취소합니다.
Clone 기존 Recordset의 복제본을 생성합니다.
Close Recordset을 닫습니다.
CompareBookmarks 두 가지 북마크를 비교합니다.
Delete 하나의 레코드나 여러 레코드를 지우습니다.
Find 지정된 조건을 만족하는 Recordset 중 하나의 레코드를 검색합니다.
GetRows 多条记录从一个 Recordset 객체를 두차원 배열에 복사합니다.
GetString Recordset을 문자열로 반환합니다.
Move Recordset 객체에서 레코드 포인터를 이동합니다.
MoveFirst 레코드 포인터를 첫 번째 레코드로 이동합니다.
MoveLast 레코드 포인터를 마지막 레코드로 이동합니다.
MoveNext 레코드 포인터를 다음 레코드로 이동합니다.
MovePrevious 레코드 포인터를 이전 레코드로 이동합니다.
NextRecordset 현재 Recordset 객체를 지우고 다음 Recordset을 반환하는 일련의 명령을 실행하여 클리어합니다.
Open 데이터베이스 요소를 열어, 이 요소는 테이블의 레코드, 쿼리 결과 또는 저장된 Recordset에 대한 접근을 제공할 수 있습니다.
Requery Recordset 객체에 있는 데이터를 다시 실행된 쿼리를 통해 업데이트합니다.
Resync 현재 Recordset에서의 데이터를 원래 데이터베이스에서 새로 고침합니다.
Save Recordset 객체를 파일이나 Stream 객체에 저장합니다.
Seek Recordset의 인덱스를 검색하여 지정된 값과 일치하는 행을 빠르게 위치시키고 현재 행으로 만듭니다.
Supports Boolean 값을 반환하여 Recordset 객체가 특정 유형의 기능을 지원하는지 정의합니다.
Update Recordset 객체의 한 개의 단일 레코드에 대한 모든 변경사항을 저장합니다.
UpdateBatch 모든 Recordset에서의 변경사항을 데이터베이스에 저장합니다. 배치 업데이트 모드에서 사용하십시오.

이벤트

주의: VBScript 또는 JScript를 사용하여 이벤트를 처리할 수 없습니다. (이벤트를 처리할 수 있는 언어는 Visual Basic, Visual C++, 및 Visual J++ 언어만 있습니다).

이벤트 설명
EndOfRecordset Recordset의 끝을 넘어서려고 시도할 때 발생합니다.
FetchComplete 비동기 작업에서 모든 레코드가 읽혀진 후에 발생합니다.
FetchProgress 비동기 작업 중에 정기적으로 발생하여 얼마나 많은 레코드가 읽혔는지 보고합니다.
FieldChangeComplete Field 객체의 값이 변경되면 발생합니다.
MoveComplete Recordset에서 현재 위치가 변경된 후에 발생합니다.
RecordChangeComplete 한 개의 레코드가 변경된 후에 발생합니다.
RecordsetChangeComplete Recordset이 변경된 후에 발생합니다.
WillChangeField Field 객체의 값이 변경되기 전에 발생합니다
WillChangeRecord 한 개의 레코드가 변경되기 전에 발생합니다.
WillChangeRecordset Recordset이 변경되기 전에 발생합니다.
WillMove Recordset에서 현재 위치가 변경되기 전에 발생합니다.

집합

집합 설명
Fields 이 Recordset 객체에서 Field 객체의 수를 나타냅니다.
Properties 모든 Recordset 객체의 Property 객체를 포함합니다.

Fields 집합의 속성

속성 설명
Count

fields 집합에서 항목의 수를 반환합니다. 0에서 시작합니다.

예제:

	countfields = rs.Fields.Count
	
Item(named_item/number)

fields 집합에서 특정한 항목을 반환합니다.

예제:

	itemfields = rs.Fields.Item(1)
	또는	
	itemfields = rs.Fields.Item("Name")
	

Properties 집합의 속성

속성 설명
Count

properties 집합에서 항목의 수를 반환합니다. 0에서 시작합니다.

예제:

	countprop = rs.Properties.Count
	
Item(named_item/number)

properties 집합에서 특정한 항목을 반환합니다.

예제:

	itemprop = rs.Properties.Item(1)
	또는
	itemprop = rs.Properties.Item("Name")