다음을 통해 공유


Open 메서드(ADO 레코드 집합)

Recordset 개체에서 커서를 엽니다.

구문

  
recordset.Open Source, ActiveConnection, CursorType, LockType, Options  

매개 변수

원본
(선택 사항) 유효한 Command 개체, SQL 문, 테이블 이름, 저장 프로시저 호출, URL 또는 영구적으로 저장된 레코드 집합이 포함된 파일 또는 Stream 개체의 이름으로 평가되는 변형입니다.

ActiveConnection
(선택 사항) 유효한 Connection 개체 변수 이름으로 평가되는 변형이거나 ConnectionString 매개 변수가 포함된 문자열입니다.

CursorType
(선택 사항) Recordset를 열 때 공급자가 사용해야 하는 커서의 유형을 결정하는 CursorTypeEnum 값입니다. 기본값은 adOpenForwardOnly입니다.

LockType
(선택 사항) 레코드 집합을 열 때 공급자가 사용해야 하는 잠금(동시성)의 유형을 결정하는 LockTypeEnum 값입니다. 기본값은 adLockReadOnly입니다.

옵션
(선택 사항) 공급자가 Command 개체 이외의 항목을 나타내는 Source 인수를 평가하는 방법을 나타내거나 Recordset를 이전에 저장된 파일에서 복원해야 함을 나타내는 Long 값입니다. 하나 이상의 CommandTypeEnum 또는 ExecuteOptionEnum 값일 수 있으며 비트 OR 연산자와 결합될 수 있습니다.

참고

지속형 레코드 집합이 포함된 스트림에서 레코드 집합을 여는 경우 adAsyncFetchNonBlockingExecuteOptionEnum 값을 사용하면 아무 효과가 없습니다. 페치가 동기식이고 차단합니다.

참고

adExecuteNoRecords 또는 adExecuteStreamExecuteOpenEnum 값은 Open과 함께 사용하면 안 됩니다.

설명

ADO 레코드 집합의 기본 커서는 서버에 있는 정방향 전용 읽기 전용 커서입니다.

Recordset 개체에서 Open 메서드를 사용하면 기본 테이블의 레코드, 쿼리 결과 또는 이전에 저장된 레코드 집합을 나타내는 커서가 열립니다.

선택적 Source 인수를 사용하여 Command 개체 변수, SQL 문, 저장 프로시저, 테이블 이름, URL 또는 전체 파일 경로 이름 중 하나로 데이터 원본을 지정할 수 있습니다. Source가 파일 경로 이름인 경우 전체 경로("c:\dir\file.rst"), 상대 경로("..\file.rst") 또는 URL(https://files/file.rst)일 수 있습니다.

호출이 성공했는지 여부를 쉽게 확인할 수 없기 때문에 Open 메서드의 Source 인수를 사용하여 레코드를 반환하지 않는 작업 쿼리를 수행하는 것은 좋지 않습니다. 이러한 쿼리에서 반환된 레코드 집합은 닫힙니다. SQL INSERT 문과 같이 레코드를 반환하지 않는 쿼리를 수행하려면 Command 개체의 Execute 메서드 또는 Connection 개체의 Execute 메서드를 대신 호출합니다.

ActiveConnection 인수는 ActiveConnection 속성에 해당하며 Recordset 개체를 열 연결을 지정합니다. 이 인수에 대한 연결 정의를 전달하는 경우 ADO는 지정된 매개 변수를 사용하여 새 연결을 엽니다. CursorLocation 속성을 adUseClient로 설정하여 클라이언트 쪽 커서를 사용하여 레코드 집합을 연 후 이 속성의 값을 변경하여 다른 공급자에게 업데이트를 보낼 수 있습니다. 또는 이 속성을 Nothing(Microsoft Visual Basic) 또는 NULL로 설정하여 모든 공급자에서 레코드 집합의 연결을 끊을 수 있습니다. 그러나 서버 쪽 커서에 대한 ActiveConnection을 변경하면 오류가 발생합니다.

Recordset 개체의 속성에 직접 해당하는 다른 인수(Source, CursorTypeLockType)의 경우 속성에 대한 인수의 관계는 다음과 같습니다.

  • Recordset 개체가 열리기 전에 속성이 읽기/쓰기입니다.

  • Open 메서드를 실행할 때 해당 인수를 전달하지 않는 한 속성 설정이 사용됩니다. 인수를 전달하면 해당 속성 설정이 재정의되고 속성 설정이 인수 값으로 업데이트됩니다.

  • Recordset 개체를 열면 이러한 속성은 읽기 전용이 됩니다.

참고

ActiveConnection 속성은 Recordset 개체가 열려 있지 않더라도 Source 속성이 유효한 Command 개체로 설정된 Recordset 개체에 대해 읽기 전용입니다.

Source 인수에서 Command 개체를 전달하고 ActiveConnection 인수도 전달하면 오류가 발생합니다. Command 개체의 ActiveConnection 속성을 이미 유효한 Connection 개체 또는 연결 문자열로 설정해야 합니다.

Source 인수에서 Command 개체 이외의 항목을 전달하는 경우 Options 인수를 사용하여 Source 인수의 평가를 최적화할 수 있습니다. Options 인수를 정의하지 않을 경우 ADO가 공급자를 호출하여 인수가 SQL 문, 저장 프로시저, URL 또는 테이블 이름인지 확인해야 하기 때문에 성능이 저하될 수 있습니다. 사용 중인 원본 유형을 알고 있는 경우 Options 인수를 설정하면 ADO에게 관련 코드로 직접 이동하도록 지시합니다. Options 인수가 원본 유형과 일치하지 않으면 오류가 발생합니다.

Source 인수에서 Stream 개체를 전달하는 경우 다른 인수에서 정보를 전달하면 안 됩니다. 사용할 경우 오류가 발생합니다. 스트림에서 레코드 집합을 열 때 ActiveConnection 정보는 유지되지 않습니다.

레코드 집합과 연결된 연결이 없는 경우 Options 인수의 기본값은 adCmdFile입니다. 이는 일반적으로 영구적으로 저장된 Recordset 개체인 경우입니다.

데이터 원본이 레코드를 반환하지 않으면 공급자는 BOFEOF 속성을 모두 True로 설정하고 현재 레코드 위치는 정의되지 않습니다. 커서 유형에서 허용하는 경우 이 빈 Recordset 개체에 새 데이터를 추가할 수 있습니다.

열려 있는 Recordset 개체에 대한 작업을 완료한 경우 Close 메서드를 사용하여 연결된 시스템 리소스를 모두 해제합니다. 개체를 닫아도 메모리에서 제거되지 않습니다. 해당 속성 설정을 변경할 수 있고 Open 메서드를 사용하여 나중에 다시 열 수 있습니다. 메모리에서 개체를 완전히 제거하려면 개체 변수를 Nothing으로 설정합니다.

ActiveConnection 속성을 설정하기 전에 피연산자가 없는 Open을 호출하여 RecordsetFields 컬렉션에 필드를 추가하여 만든 Recordset 인스턴스를 하나 만듭니다.

CursorLocation 속성을 adUseClient로 설정한 경우 두 가지 방법 중 하나로 행을 비동기적으로 검색할 수 있습니다. 권장되는 방법은 OptionsadAsyncFetch로 설정하는 것입니다. 또는 Properties 컬렉션에서 "Asynchronous Rowset Processing" 동적 속성을 사용할 수 있지만 Options 매개 변수를 adAsyncFetch로 설정하지 않으면 검색된 관련 이벤트가 손실될 수 있습니다.

참고

MS 원격 공급자의 백그라운드 페칭은 Open 메서드의 Options 매개 변수를 통해서만 지원됩니다.

참고

http 체계를 사용하는 URL은 Microsoft OLE DB Provider for Internet Publishing을 자동으로 호출합니다. 자세한 내용은 절대 URL 및 상대 URL을 참조하세요.

CommandTypeEnumExecuteOptionEnum 값의 일부 조합은 유효하지 않습니다. 결합할 수 없는 옵션에 대한 자세한 내용은 ExecuteOptionEnumCommandTypeEnum에 대한 항목을 참조하세요.

적용 대상

레코드 집합 개체(ADO)

참고 항목

Open 및 Close 메서드 예제(VB)
Open 및 Close 메서드 예제(VBScript)
Open 및 Close 메서드 예제(VC++)
Save 및 Open 메서드 예제(VB)
Open 메서드(ADO 연결)
Open 메서드(ADO 레코드)
Open 메서드(ADO 스트림)
OpenSchema 메서드
Save 메서드