다음을 통해 공유


OpenSchema 메서드

공급자로부터 데이터베이스 스키마 정보를 가져옵니다.

구문

  
Set recordset = connection.OpenSchema(QueryType, Criteria, SchemaID)  

Return Value

스키마 정보를 포함하는 Recordset 개체를 반환합니다. Recordset는 읽기 전용 정적 커서로 열립니다. QueryTypeRecordset에 표시되는 열을 결정합니다.

매개 변수

QueryType
실행할 스키마 쿼리의 형식을 나타내는 모든 SchemaEnum 값입니다.

조건
(선택 사항) SchemaEnum에 나열된 각 QueryType 옵션에 대한 쿼리 제약 조건 배열입니다.

SchemaID
OLE DB 사양에 의해 정의되지 않은 공급자 스키마 쿼리의 GUID입니다. QueryTypeadSchemaProviderSpecific으로 설정된 경우 이 매개 변수가 필요합니다. 그렇지 않으면 사용되지 않습니다.

설명

OpenSchema 메서드는 데이터 원본에 있는 테이블, 테이블의 열, 지원되는 데이터 형식과 같은 데이터 원본에 대한 자체 설명 정보를 반환합니다.

QueryType 인수는 반환된 열(스키마)을 나타내는 GUID입니다. OLE DB 사양에는 스키마의 전체 목록이 있습니다.

Criteria 인수는 스키마 쿼리의 결과를 제한합니다. Criteria는 결과 Recordset에서 제약 조건 열이라고 하는 열의 해당 하위 집합에서 발생해야 하는 값 배열을 지정합니다.

상수 adSchemaProviderSpecific은 공급자가 이전에 나열된 쿼리 외부에 자체 비표준 스키마 쿼리를 정의하는 경우 QueryType 인수에 사용됩니다. 이 상수가 사용되는 경우 실행할 스키마 쿼리의 GUID를 전달하려면 SchemaID 인수가 필요합니다. QueryTypeadSchemaProviderSpecific으로 설정되어 있지만 SchemaID가 제공되지 않으면 오류가 발생합니다.

공급자가 모든 OLE DB 표준 스키마 쿼리를 지원할 필요는 없습니다. 특히 OLE DB 사양에는 adSchemaTables, adSchemaColumns, adSchemaProviderTypes만 필요합니다. 그러나 공급자는 이러한 스키마 쿼리에 대해 이전에 나열된 Criteria 제약 조건을 지원할 필요가 없습니다.

참고

원격 데이터 서비스 사용OpenSchema 메서드는 클라이언트 쪽 Connection 개체에서 사용할 수 없습니다.

참고

Visual Basic에서는 Connection 개체의 OpenSchema 메서드에서 반환된 Recordset에 4바이트 부호 없는 정수(DBTYPE UI4)가 있는 열을 다른 변수와 비교할 수 없습니다. OLE DB 데이터 형식에 대한 자세한 내용은 Microsoft OLE DB 프로그래머 참조의 OLE DB의 데이터 형식(OLE DB)부록 A: 데이터 형식을 참조하세요.

참고

Visual C/C++ 사용자 클라이언트 쪽 커서를 사용하지 않는 경우 ADO에서 열 스키마의 “ORDINAL_POSITION”을 검색하면 MDAC 2.7, MDAC 2.8, Windows DAC(Windows 데이터 액세스 구성 요소) 6.0에서 VT_R8 형식의 변형이 반환되고 MDAC 2.6에 사용된 형식은 VT_I4입니다. VT_I4 형식의 반환된 변형만 찾는 MDAC 2.6용으로 작성된 프로그램은 수정 없이 MDAC 2.7, MDAC 2.8, Windows DAC 6.0에서 실행되는 경우 모든 서수에 대해 0을 가져옵니다. OLE DB가 반환하는 데이터 형식이 DBTYPE_UI4이고, 서명된 VT_I4 형식에서 잘림이 발생하여 데이터 손실이 발생하지 않고 가능한 모든 값을 포함할 공간이 충분하지 않기 때문에 이러한 변경이 이루어졌습니다.

적용 대상

연결 개체(ADO)

참고 항목

OpenSchema 메서드 예제(VB)
OpenSchema 메서드 예제(VC++)
Open 메서드(ADO 연결)
Open 메서드(ADO 레코드)
Open 메서드(ADO 레코드 집합)
Open 메서드(ADO 스트림)
부록 A: 공급자