OLE DB 공급자 템플릿에 대한 매크로

OLE DB 템플릿 공급자 매크로는 다음 범주의 기능을 제공합니다.

속성 집합 맵 매크로

속성 설명
BEGIN_PROPERTY_SET 속성 집합의 시작을 표시합니다.
BEGIN_PROPERTY_SET_EX 속성 집합의 시작을 표시합니다.
BEGIN_PROPSET_MAP 공급자 범위 외부에서 숨기거나 정의할 수 있는 속성 집합의 시작을 표시합니다.
CHAIN_PROPERTY_SET 속성 그룹을 함께 연결합니다.
END_PROPERTY_SET 속성 집합의 끝을 표시합니다.
END_PROPSET_MAP 속성 집합 맵의 끝을 표시합니다.
PROPERTY_INFO_ENTRY 속성 집합의 특정 속성을 기본값으로 설정합니다.
PROPERTY_INFO_ENTRY_EX 속성 집합의 특정 속성을 사용자가 제공한 값으로 설정합니다. 또한 플래그 및 옵션을 설정할 수 있습니다.
PROPERTY_INFO_ENTRY_VALUE 속성 집합의 특정 속성을 사용자가 제공한 값으로 설정합니다.

열 맵 매크로

속성 설명
BEGIN_PROVIDER_COLUMN_MAP 공급자 열 맵 항목의 시작을 표시합니다.
END_PROVIDER_COLUMN_MAP 공급자 열 맵 항목의 끝을 표시합니다.
PROVIDER_COLUMN_ENTRY 공급자가 지원하는 특정 열을 나타냅니다.
PROVIDER_COLUMN_ENTRY_FIXED 공급자가 지원하는 특정 열을 나타냅니다. 열 데이터 형식을 지정할 수 있습니다.
PROVIDER_COLUMN_ENTRY_GN 공급자가 지원하는 특정 열을 나타냅니다. 열의 크기, 데이터 형식, 전체 자릿수, 소수 자릿수 및 스키마 행 집합 GUID를 지정할 수 있습니다.
PROVIDER_COLUMN_ENTRY_LENGTH 공급자가 지원하는 특정 열을 나타냅니다. 열 크기를 지정할 수 있습니다.
PROVIDER_COLUMN_ENTRY_STR 공급자가 지원하는 특정 열을 나타냅니다. 열 형식이 문자열이라고 가정합니다.
PROVIDER_COLUMN_ENTRY_TYPE_LENGTH 공급자가 지원하는 특정 열을 나타냅니다. PROVIDER_COLUMN_ENTRY_LENGTH 마찬가지로 열의 데이터 형식과 크기를 지정할 수도 있습니다.
PROVIDER_COLUMN_ENTRY_WSTR 공급자가 지원하는 특정 열을 나타냅니다. 열 형식이 유니코드 문자열이라고 가정합니다.

스키마 행 집합 매크로

속성 설명
BEGIN_SCHEMA_MAP 스키마 맵의 시작을 표시합니다.
END_SCHEMA_MAP 스키마 맵의 끝을 표시합니다.
SCHEMA_ENTRY GUID를 클래스와 연결합니다.

요구 사항

헤더: atldb.h

BEGIN_PROPERTY_SET

속성 집합 맵에서 속성 집합의 시작을 표시합니다.

구문

BEGIN_PROPERTY_SET(guid)

매개 변수

guid
[in] 속성 GUID입니다.

예시

BEGIN_PROPSET_MAP을 참조하세요.

BEGIN_PROPERTY_SET_EX

속성 집합 맵에서 속성 집합의 시작을 표시합니다.

구문

BEGIN_PROPERTY_SET_EX(guid, flags)

매개 변수

guid
[in] 속성 GUID입니다.

flags
[in] 노출하지 않으려는 속성 집합에 대해 UPROPSET_HIDDEN 공급자의 범위 밖에 정의된 속성을 노출하는 공급자에 대해 UPROPSET_PASSTHROUGH.

예시

BEGIN_PROPSET_MAP을 참조하세요.

BEGIN_PROPSET_MAP

속성 집합 맵 항목의 시작을 표시합니다.

구문

BEGIN_PROPSET_MAP(Class)

매개 변수

클래스
[in] 이 속성 집합이 지정된 클래스입니다. 속성 집합은 다음 OLE DB 개체에서 지정할 수 있습니다.

예시

샘플 속성 집합 맵은 다음과 같습니다.

BEGIN_PROPSET_MAP(CCustomSource)
    BEGIN_PROPERTY_SET(DBPROPSET_DATASOURCEINFO)
        PROPERTY_INFO_ENTRY(ACTIVESESSIONS)
        PROPERTY_INFO_ENTRY(DATASOURCEREADONLY)
        PROPERTY_INFO_ENTRY(BYREFACCESSORS)
        PROPERTY_INFO_ENTRY(OUTPUTPARAMETERAVAILABILITY)
        PROPERTY_INFO_ENTRY(PROVIDEROLEDBVER)
        PROPERTY_INFO_ENTRY(DSOTHREADMODEL)
        PROPERTY_INFO_ENTRY(SUPPORTEDTXNISOLEVELS)
        PROPERTY_INFO_ENTRY(USERNAME)
    END_PROPERTY_SET(DBPROPSET_DATASOURCEINFO)
    BEGIN_PROPERTY_SET(DBPROPSET_DBINIT)
        PROPERTY_INFO_ENTRY(AUTH_PASSWORD)
        PROPERTY_INFO_ENTRY(AUTH_PERSIST_SENSITIVE_AUTHINFO)
        PROPERTY_INFO_ENTRY(AUTH_USERID)
        PROPERTY_INFO_ENTRY(INIT_DATASOURCE)
        PROPERTY_INFO_ENTRY(INIT_HWND)
        PROPERTY_INFO_ENTRY(INIT_LCID)
        PROPERTY_INFO_ENTRY(INIT_LOCATION)
        PROPERTY_INFO_ENTRY(INIT_MODE)
        PROPERTY_INFO_ENTRY(INIT_PROMPT)
        PROPERTY_INFO_ENTRY(INIT_PROVIDERSTRING)
        PROPERTY_INFO_ENTRY(INIT_TIMEOUT)
    END_PROPERTY_SET(DBPROPSET_DBINIT)
    CHAIN_PROPERTY_SET(CCustomSession)
    CHAIN_PROPERTY_SET(CCustomCommand)
END_PROPSET_MAP()

CHAIN_PROPERTY_SET

이 매크로는 속성 그룹을 함께 연결합니다.

구문

CHAIN_PROPERTY_SET(ChainClass)

매개 변수

ChainClass
[in] 속성을 연결할 클래스의 이름입니다. 이 클래스는 ATL 프로젝트 마법사에서 생성된 클래스로, 맵(예: 세션, 명령 또는 데이터 원본 개체 클래스)이 이미 포함되어 있습니다.

설명

다른 클래스에서 사용자 고유의 클래스로 속성 집합을 연결한 다음, 클래스에서 직접 속성에 액세스할 수 있습니다.

주의

이 매크로는 아쉽게 사용합니다. 부적절한 사용으로 인해 소비자가 OLE DB 규칙 테스트에 실패할 수 있습니다.

END_PROPERTY_SET

속성 집합의 끝을 표시합니다.

구문

END_PROPERTY_SET(guid)

매개 변수

guid
[in] 속성 GUID입니다.

예시

BEGIN_PROPSET_MAP을 참조하세요.

END_PROPSET_MAP

속성 집합 맵 항목의 끝을 표시합니다.

구문

END_PROPSET_MAP()

예시

BEGIN_PROPSET_MAP을 참조하세요.

PROPERTY_INFO_ENTRY

속성 집합의 특정 속성을 나타냅니다.

구문

PROPERTY_INFO_ENTRY(dwPropID)

매개 변수

dwPropID
[in] 속성 집합 GUID와 함께 사용하여 속성을 식별할 수 있는 DBPROPID 값입니다.

설명

이 매크로는 DWORD 형식의 속성 값을 ATLDB.H에 정의된 기본값으로 설정합니다. 속성을 선택한 값으로 설정하려면 PROPERTY_INFO_ENTRY_VALUE를 사용합니다. 속성에 VARTYPE 대한 DBPROPFLAGS와 DBPROPFLAGS를 동시에 설정하려면 PROPERTY_INFO_ENTRY_EX 사용합니다.

예시

BEGIN_PROPSET_MAP을 참조하세요.

PROPERTY_INFO_ENTRY_EX

속성 집합의 특정 속성을 나타냅니다.

구문

PROPERTY_INFO_ENTRY_EX(dwPropID, vt, dwFlags, value, options)

매개 변수

dwPropID
[in] 속성 집합 GUID와 함께 사용하여 속성을 식별할 수 있는 DBPROPID 값입니다.

vt
[in] 이 속성 항목의 VARTYPE입니다. (wtypes.h에 정의됨)

dwFlags
[in] 이 속성 항목을 설명하는 DBPROPFLAGS 값입니다.

value
[in] DWORD형식의 속성 값입니다.

options
DBPROPOPTIONS_REQUIRED 또는 DBPROPOPTIONS_SETIFCHEAP입니다. 일반적으로 공급자는 소비자에 의해 설정되므로 옵션을 설정할 필요가 없습니다.

설명

이 매크로를 사용하면 DWORD 형식의 속성 값뿐만 아니라 옵션 및 플래그를 직접 지정할 수 있습니다. 속성을 ATLDB.H에 정의된 기본값으로 설정하려면 PROPERTY_INFO_ENTRY를 사용합니다. 옵션 또는 플래그를 설정하지 않고 선택한 값으로 속성을 설정하려면 PROPERTY_INFO_ENTRY_VALUE를 사용합니다.

예시

BEGIN_PROPSET_MAP을 참조하세요.

PROPERTY_INFO_ENTRY_VALUE

속성 집합의 특정 속성을 나타냅니다.

구문

PROPERTY_INFO_ENTRY_VALUE(dwPropID, value)

매개 변수

dwPropID
[in] 속성 집합 GUID와 함께 사용하여 속성을 식별할 수 있는 DBPROPID 값입니다.

value
[in] DWORD형식의 속성 값입니다.

설명

이 매크로를 사용하면 형식 DWORD의 속성 값을 직접 지정할 수 있습니다. 속성을 ATLDB에 정의된 기본값으로 설정하려면 H, PROPERTY_INFO_ENTRY 사용합니다. 속성에 대한 값, 플래그 및 옵션을 설정하려면 PROPERTY_INFO_ENTRY_EX 사용합니다.

예시

BEGIN_PROPSET_MAP을 참조하세요.

BEGIN_PROVIDER_COLUMN_MAP

공급자 열 맵 항목의 시작을 표시합니다.

구문

BEGIN_PROVIDER_COLUMN_MAP(theClass)

매개 변수

theClass
[in] 이 맵이 속한 클래스의 이름입니다.

예시

다음은 샘플 공급자 열 맵입니다.

BEGIN_PROVIDER_COLUMN_MAP(CCustomWindowsFile)
    PROVIDER_COLUMN_ENTRY("FileAttributes", 1, dwFileAttributes)
    PROVIDER_COLUMN_ENTRY("FileSizeHigh", 2, nFileSizeHigh)
    PROVIDER_COLUMN_ENTRY("FileSizeLow", 3, nFileSizeLow)
    PROVIDER_COLUMN_ENTRY_STR("FileName", 4, cFileName)
    PROVIDER_COLUMN_ENTRY_STR("AltFileName", 5, cAlternateFileName)
END_PROVIDER_COLUMN_MAP()

END_PROVIDER_COLUMN_MAP

공급자 열 맵 항목의 끝을 표시합니다.

구문

END_PROVIDER_COLUMN_MAP()

예시

BEGIN_PROVIDER_COLUMN_MAP 참조하세요.

PROVIDER_COLUMN_ENTRY

공급자가 지원하는 특정 열을 나타냅니다.

구문

PROVIDER_COLUMN_ENTRY (name, ordinal, member)

매개 변수

이름
[in] 열 이름입니다.

서수
[in] 열 번호입니다. 열이 책갈피 열이 아니면 열 번호는 0이 아니어야 합니다.

member
[in] 열에 dataClass 해당하는 멤버 변수입니다.

PROVIDER_COLUMN_ENTRY_FIXED

공급자가 지원하는 특정 열을 나타냅니다.

구문

PROVIDER_COLUMN_ENTRY_FIXED(name, ordinal, dbtype, member)

매개 변수

이름
[in] 열 이름입니다.

서수
[in] 열 번호입니다. 열이 책갈피 열이 아니면 열 번호는 0이 아니어야 합니다.

dbtype
[in] DBTYPE데이터 형식입니다.

member
[in] 데이터를 저장하는 멤버 변수 dataClass 입니다.

설명

열 데이터 형식을 지정할 수 있습니다.

예시

BEGIN_PROVIDER_COLUMN_MAP 참조하세요.

PROVIDER_COLUMN_ENTRY_GN

공급자가 지원하는 특정 열을 나타냅니다.

구문

PROVIDER_COLUMN_ENTRY_GN (name, ordinal, flags, colSize, dbtype, precision, scale, guid)

매개 변수

이름
[in] 열 이름입니다.

서수
[in] 열 번호입니다. 열이 책갈피 열이 아니면 열 번호는 0이 아니어야 합니다.

flags
[in] 데이터가 반환되는 방법을 지정합니다. dwFlags DBBINDING 구조체의 설명을 참조하세요.

colSize
[in] 열 크기입니다.

dbtype
[in] 값의 데이터 형식을 나타냅니다. wType DBBINDING 구조체의 설명을 참조하세요.

전체 자릿수
[in] dbType이 DBTYPE_NUMERIC 또는 DBTYPE_DECIMAL 경우 데이터를 가져오는 경우 사용할 전체 자릿수를 나타냅니다. bPrecision DBBINDING 구조체의 설명을 참조하세요.

scale
[in] dbType이 DBTYPE_NUMERIC 또는 DBTYPE_DECIMAL 경우 데이터를 가져오는 경우 사용할 크기를 나타냅니다. bScale DBBINDING 구조체의 설명을 참조하세요.

guid
스키마 행 집합 GUID입니다. 스키마 행 집합 및 해당 GUID 목록은 OLE DB 프로그래머 참조의 IDBSchemaRowset 을 참조하세요.

설명

열의 크기, 데이터 형식, 전체 자릿수, 소수 자릿수 및 스키마 행 집합 GUID를 지정할 수 있습니다.

PROVIDER_COLUMN_ENTRY_LENGTH

공급자가 지원하는 특정 열을 나타냅니다.

구문

PROVIDER_COLUMN_ENTRY_LENGTH(name, ordinal, size, member)

매개 변수

이름
[in] 열 이름입니다.

서수
[in] 열 번호입니다. 열이 책갈피 열이 아니면 열 번호는 0이 아니어야 합니다.

size
[in] 열 크기(바이트)입니다.

member
[in] 열 데이터를 저장하는 멤버 변수 dataClass 입니다.

설명

열 크기를 지정할 수 있습니다.

예시

BEGIN_PROVIDER_COLUMN_MAP 참조하세요.

PROVIDER_COLUMN_ENTRY_STR

공급자가 지원하는 특정 열을 나타냅니다.

구문

PROVIDER_COLUMN_ENTRY_STR(name, ordinal, member)

매개 변수

이름
[in] 열 이름입니다.

서수
[in] 열 번호입니다. 열이 책갈피 열이 아니면 열 번호는 0이 아니어야 합니다.

member
[in] 데이터를 저장하는 데이터 클래스의 멤버 변수입니다.

설명

열 데이터가 DBTYPE_STR 것으로 간주될 때 이 매크로를 사용합니다.

예시

BEGIN_PROVIDER_COLUMN_MAP 참조하세요.

PROVIDER_COLUMN_ENTRY_TYPE_LENGTH

공급자가 지원하는 특정 열을 나타냅니다.

구문

PROVIDER_COLUMN_ENTRY_TYPE_LENGTH(name, ordinal, dbtype, size, member)

매개 변수

이름
[in] 열 이름입니다.

서수
[in] 열 번호입니다. 열이 책갈피 열이 아니면 열 번호는 0이 아니어야 합니다.

dbtype
[in] DBTYPE데이터 형식입니다.

size
[in] 열 크기(바이트)입니다.

member
[in] 데이터를 저장하는 데이터 클래스의 멤버 변수입니다.

설명

PROVIDER_COLUMN_ENTRY_LENGTH 비슷하지만 열의 데이터 형식과 크기를 지정할 수도 있습니다.

PROVIDER_COLUMN_ENTRY_WSTR

공급자가 지원하는 특정 열을 나타냅니다.

구문

PROVIDER_COLUMN_ENTRY_WSTR(name, ordinal, member)

매개 변수

이름
[in] 열 이름입니다.

서수
[in] 열 번호입니다. 열이 책갈피 열이 아니면 열 번호는 0이 아니어야 합니다.

member
[in] 데이터를 저장하는 데이터 클래스의 멤버 변수입니다.

설명

열 데이터가 null로 끝나는 유니코드 문자열 인 경우 이 매크로를 사용합니다( DBTYPE_WSTR.

BEGIN_SCHEMA_MAP

스키마 맵의 시작을 나타냅니다.

구문

BEGIN_SCHEMA_MAP(SchemaClass);

매개 변수

SchemaClass
MAP를 포함하는 클래스입니다. 일반적으로 세션 클래스가 됩니다.

설명

스키마 행 집합에 대한 자세한 내용은 Windows SDK의 IDBSchemaRowset을 참조하세요.

END_SCHEMA_MAP

스키마 맵의 끝을 나타냅니다.

구문

END_SCHEMA_MAP()

설명

자세한 내용은 IDBSchemaRowsetImpl 클래스를 참조 하세요.

SCHEMA_ENTRY

GUID를 클래스와 연결합니다.

구문

SCHEMA_ENTRY(guid,
   rowsetClass);

매개 변수

guid
스키마 행 집합 GUID입니다. 스키마 행 집합 및 해당 GUID 목록은 OLE DB 프로그래머 참조의 IDBSchemaRowset 을 참조하세요.

rowsetClass
스키마 행 집합을 나타내기 위해 만들 클래스입니다.

설명

IDBSchemaRowsetImpl 은 GUID 목록에 대한 맵을 쿼리하거나 GUID가 지정된 경우 행 집합을 만들 수 있습니다. 스키마 행 집합 IDBSchemaRowsetImpl 은 다음 시그니처가 있는 메서드를 제공해야 Execute 한다는 점을 제외하고 표준 CRowsetImpl파생 클래스와 유사합니다.

HRESULT Execute (LONG* pcRowsAffected,
    ULONG cRestrictions,
    const VARIANT* rgRestrictions);

Execute 함수는 행 집합의 데이터를 채웁니다. ATL 프로젝트 마법사는 OLE DB 프로그래머 참조의 IDBSchemaRowset설명된 대로 세 가지 필수 OLE DB 스키마 각각에 대해 프로젝트에 세 개의 초기 스키마 행 집합을 만듭니다.

  • DBSCHEMA_TABLES

  • DBSCHEMA_COLUMNS

  • DBSCHEMA_PROVIDER_TYPES

또한 마법사는 스키마 맵에 세 개의 해당 항목을 추가합니다. 마법사를 사용하여 공급자를 만드는 방법에 대한 자세한 내용은 OLE DB 템플릿 공급자 만들기를 참조하세요.

참고 항목

OLE DB 공급자 템플릿
OLE DB 공급자 템플릿 구조
OLE DB 공급자 만들기
OLE DB 공급자 템플릿 참조
OLE DB 공급자 템플릿에 대한 매크로