Udostępnij za pośrednictwem


Makra dla szablonów dostawców OLE DB

Makra dostawcy szablonów OLE DB oferują funkcje w następujących kategoriach:

Makra mapy zestawu właściwości

Nazwa/nazwisko opis
BEGIN_PROPERTY_SET Oznacza początek zestawu właściwości.
BEGIN_PROPERTY_SET_EX Oznacza początek zestawu właściwości.
BEGIN_PROPSET_MAP Oznacza początek zestawu właściwości, który może być ukryty lub zdefiniowany poza zakresem dostawcy.
CHAIN_PROPERTY_SET Łączy grupy właściwości.
END_PROPERTY_SET Oznacza koniec zestawu właściwości.
END_PROPSET_MAP Oznacza koniec mapy zestawu właściwości.
PROPERTY_INFO_ENTRY Ustawia określoną właściwość we właściwości ustawionej na wartość domyślną.
PROPERTY_INFO_ENTRY_EX Ustawia określoną właściwość we właściwości ustawionej na wartość dostarczoną przez Użytkownika. Umożliwia również ustawianie flag i opcji.
PROPERTY_INFO_ENTRY_VALUE Ustawia określoną właściwość we właściwości ustawionej na wartość dostarczoną przez Użytkownika.

Makra mapy kolumn

Nazwa/nazwisko opis
BEGIN_PROVIDER_COLUMN_MAP Oznacza początek wpisów mapy kolumn dostawcy.
END_PROVIDER_COLUMN_MAP Oznacza koniec wpisów mapy kolumn dostawcy.
PROVIDER_COLUMN_ENTRY Reprezentuje określoną kolumnę obsługiwaną przez dostawcę.
PROVIDER_COLUMN_ENTRY_FIXED Reprezentuje określoną kolumnę obsługiwaną przez dostawcę. Możesz określić typ danych kolumny.
PROVIDER_COLUMN_ENTRY_GN Reprezentuje określoną kolumnę obsługiwaną przez dostawcę. Można określić rozmiar kolumny, typ danych, precyzję, skalę i identyfikator GUID zestawu wierszy schematu.
PROVIDER_COLUMN_ENTRY_LENGTH Reprezentuje określoną kolumnę obsługiwaną przez dostawcę. Można określić rozmiar kolumny.
PROVIDER_COLUMN_ENTRY_STR Reprezentuje określoną kolumnę obsługiwaną przez dostawcę. Przyjęto założenie, że typ kolumny jest ciągiem.
PROVIDER_COLUMN_ENTRY_TYPE_LENGTH Reprezentuje określoną kolumnę obsługiwaną przez dostawcę. Podobnie jak PROVIDER_COLUMN_ENTRY_LENGTH, ale także umożliwia określenie typu danych kolumny oraz rozmiaru.
PROVIDER_COLUMN_ENTRY_WSTR Reprezentuje określoną kolumnę obsługiwaną przez dostawcę. Przyjęto założenie, że typ kolumny jest ciągiem znaków Unicode.

Makra zestawu wierszy schematu

Nazwa/nazwisko opis
BEGIN_SCHEMA_MAP Oznacza początek mapy schematu.
END_SCHEMA_MAP Oznacza koniec mapy schematu.
SCHEMA_ENTRY Kojarzy identyfikator GUID z klasą.

Wymagania

Nagłówek: atldb.h

BEGIN_PROPERTY_SET

Oznacza początek zestawu właściwości na mapie zestawu właściwości.

Składnia

BEGIN_PROPERTY_SET(guid)

Parametry

guid
[in] Identyfikator GUID właściwości.

Przykład

Zobacz BEGIN_PROPSET_MAP.

BEGIN_PROPERTY_SET_EX

Oznacza początek zestawu właściwości na mapie zestawu właściwości.

Składnia

BEGIN_PROPERTY_SET_EX(guid, flags)

Parametry

guid
[in] Identyfikator GUID właściwości.

Flagi
[in] UPROPSET_HIDDEN dla wszystkich zestawów właściwości, których nie chcesz ujawniać, lub UPROPSET_PASSTHROUGH dla dostawcy uwidaczniania właściwości zdefiniowanych poza zakresem dostawcy.

Przykład

Zobacz BEGIN_PROPSET_MAP.

BEGIN_PROPSET_MAP

Oznacza początek wpisów mapy zestawu właściwości.

Składnia

BEGIN_PROPSET_MAP(Class)

Parametry

Klasa
[in] Klasa, w której określono ten zestaw właściwości. Zestaw właściwości można określić w następujących obiektach OLE DB:

Przykład

Oto przykładowa mapa zestawu właściwości:

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

To makro łączy grupy właściwości.

Składnia

CHAIN_PROPERTY_SET(ChainClass)

Parametry

ChainClass
[in] Nazwa klasy do tworzenia łańcuchów właściwości. Jest to klasa wygenerowana przez Kreatora projektu ATL, która zawiera już mapę (taką jak sesja, polecenie lub klasa obiektu źródła danych).

Uwagi

Możesz połączyć zestaw właściwości z innej klasy z własną klasą, a następnie uzyskać dostęp do właściwości bezpośrednio z klasy.

Uwaga

Użyj tego makra oszczędnie. Niewłaściwe użycie może spowodować niepowodzenie testów zgodności OLE DB przez użytkownika.

END_PROPERTY_SET

Oznacza koniec zestawu właściwości.

Składnia

END_PROPERTY_SET(guid)

Parametry

guid
[in] Identyfikator GUID właściwości.

Przykład

Zobacz BEGIN_PROPSET_MAP.

END_PROPSET_MAP

Oznacza koniec wpisów mapy zestawu właściwości.

Składnia

END_PROPSET_MAP()

Przykład

Zobacz BEGIN_PROPSET_MAP.

PROPERTY_INFO_ENTRY

Reprezentuje określoną właściwość w zestawie właściwości.

Składnia

PROPERTY_INFO_ENTRY(dwPropID)

Parametry

dwPropID
[in] Wartość DBPROPID , która może być używana w połączeniu z identyfikatorem GUID zestawu właściwości w celu zidentyfikowania właściwości.

Uwagi

To makro ustawia wartość właściwości typu DWORD na wartość domyślną zdefiniowaną w ATLDB.H. Aby ustawić właściwość na wybraną wartość, użyj PROPERTY_INFO_ENTRY_VALUE. Aby ustawić VARTYPE właściwość i DBPROPFLAGS w tym samym czasie, użyj PROPERTY_INFO_ENTRY_EX.

Przykład

Zobacz BEGIN_PROPSET_MAP.

PROPERTY_INFO_ENTRY_EX

Reprezentuje określoną właściwość w zestawie właściwości.

Składnia

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

Parametry

dwPropID
[in] Wartość DBPROPID , która może być używana w połączeniu z identyfikatorem GUID zestawu właściwości w celu zidentyfikowania właściwości.

Vt
[in] Wpis VARTYPE tej właściwości. (Zdefiniowane w typach.h)

dwFlags
[in] Wartość DBPROPFLAGS opisująca ten wpis właściwości.

wartość
[in] Wartość właściwości typu DWORD.

Opcje
DBPROPOPTIONS_REQUIRED lub DBPROPOPTIONS_SETIFCHEAP. Zwykle dostawca nie musi ustawiać opcji , ponieważ jest on ustawiany przez konsumenta.

Uwagi

Za pomocą tego makra można bezpośrednio określić wartość właściwości typu DWORD , a także opcje i flagi. Aby tylko ustawić właściwość na wartość domyślną zdefiniowaną w atLDB. H, użyj PROPERTY_INFO_ENTRY. Aby ustawić właściwość na wybraną wartość, bez ustawiania opcji lub flag na niej, użyj PROPERTY_INFO_ENTRY_VALUE.

Przykład

Zobacz BEGIN_PROPSET_MAP.

PROPERTY_INFO_ENTRY_VALUE

Reprezentuje określoną właściwość w zestawie właściwości.

Składnia

PROPERTY_INFO_ENTRY_VALUE(dwPropID, value)

Parametry

dwPropID
[in] Wartość DBPROPID , która może być używana w połączeniu z identyfikatorem GUID zestawu właściwości w celu zidentyfikowania właściwości.

wartość
[in] Wartość właściwości typu DWORD.

Uwagi

Za pomocą tego makra można bezpośrednio określić wartość właściwości typu DWORD. Aby ustawić właściwość na wartość domyślną zdefiniowaną w atLDB. H, użyj PROPERTY_INFO_ENTRY. Aby ustawić wartość, flagi i opcje dla właściwości, użyj PROPERTY_INFO_ENTRY_EX.

Przykład

Zobacz BEGIN_PROPSET_MAP.

BEGIN_PROVIDER_COLUMN_MAP

Oznacza początek wpisów mapy kolumn dostawcy.

Składnia

BEGIN_PROVIDER_COLUMN_MAP(theClass)

Parametry

theClass
[in] Nazwa klasy, do którego należy ta mapa.

Przykład

Oto przykładowa mapa kolumn dostawcy:

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

Oznacza koniec wpisów mapy kolumn dostawcy.

Składnia

END_PROVIDER_COLUMN_MAP()

Przykład

Zobacz BEGIN_PROVIDER_COLUMN_MAP.

PROVIDER_COLUMN_ENTRY

Reprezentuje określoną kolumnę obsługiwaną przez dostawcę.

Składnia

PROVIDER_COLUMN_ENTRY (name, ordinal, member)

Parametry

name
[in] Nazwa kolumny.

Porządkowych
[in] Numer kolumny. Jeśli kolumna nie jest kolumną Zakładka, numer kolumny nie może być 0.

członek
[in] Zmienna składowa odpowiadająca dataClass kolumnie.

PROVIDER_COLUMN_ENTRY_FIXED

Reprezentuje określoną kolumnę obsługiwaną przez dostawcę.

Składnia

PROVIDER_COLUMN_ENTRY_FIXED(name, ordinal, dbtype, member)

Parametry

name
[in] Nazwa kolumny.

Porządkowych
[in] Numer kolumny. Jeśli kolumna nie jest kolumną Zakładka, numer kolumny nie może być 0.

dbtype
[in] Typ danych w dbTYPE.

członek
[in] Zmienna składowa w dataClass tym magazynie danych.

Uwagi

Umożliwia określenie typu danych kolumny.

Przykład

Zobacz BEGIN_PROVIDER_COLUMN_MAP.

PROVIDER_COLUMN_ENTRY_GN

Reprezentuje określoną kolumnę obsługiwaną przez dostawcę.

Składnia

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

Parametry

name
[in] Nazwa kolumny.

Porządkowych
[in] Numer kolumny. Jeśli kolumna nie jest kolumną Zakładka, numer kolumny nie może być 0.

Flagi
[in] Określa sposób zwracania danych. Zobacz opis w temacie dwFlags DBBINDING Structures (Struktury DBBINDING).

colSize
[in] Rozmiar kolumny.

dbtype
[in] Wskazuje typ danych wartości. Zobacz opis w temacie wType DBBINDING Structures (Struktury DBBINDING).

precyzja
[in] Wskazuje precyzję, która ma być używana podczas pobierania danych, jeśli parametr dbType jest DBTYPE_NUMERIC lub DBTYPE_DECIMAL. Zobacz opis w temacie bPrecision DBBINDING Structures (Struktury DBBINDING).

skala
[in] Wskazuje skalę do użycia podczas pobierania danych, jeśli parametr dbType jest DBTYPE_NUMERIC lub DBTYPE_DECIMAL. Zobacz opis w temacie bScale DBBINDING Structures (Struktury DBBINDING).

guid
Identyfikator GUID zestawu wierszy schematu. Zobacz IDBSchemaRowset w dokumentacji programisty OLE DB, aby uzyskać listę zestawów wierszy schematu i ich identyfikatorów GUID.

Uwagi

Umożliwia określenie rozmiaru kolumny, typu danych, precyzji, skali i identyfikatora GUID zestawu wierszy schematu.

PROVIDER_COLUMN_ENTRY_LENGTH

Reprezentuje określoną kolumnę obsługiwaną przez dostawcę.

Składnia

PROVIDER_COLUMN_ENTRY_LENGTH(name, ordinal, size, member)

Parametry

name
[in] Nazwa kolumny.

Porządkowych
[in] Numer kolumny. Jeśli kolumna nie jest kolumną Zakładka, numer kolumny nie może być 0.

rozmiar
[in] Rozmiar kolumny w bajtach.

członek
[in] Zmienna składowa w dataClass tym magazynie danych kolumny.

Uwagi

Umożliwia określenie rozmiaru kolumny.

Przykład

Zobacz BEGIN_PROVIDER_COLUMN_MAP.

PROVIDER_COLUMN_ENTRY_STR

Reprezentuje określoną kolumnę obsługiwaną przez dostawcę.

Składnia

PROVIDER_COLUMN_ENTRY_STR(name, ordinal, member)

Parametry

name
[in] Nazwa kolumny.

Porządkowych
[in] Numer kolumny. Jeśli kolumna nie jest kolumną Zakładka, numer kolumny nie może być 0.

członek
[in] Zmienna składowa w klasie danych, która przechowuje dane.

Uwagi

Użyj tego makra, gdy przyjmuje się, że dane kolumny mają być DBTYPE_STR.

Przykład

Zobacz BEGIN_PROVIDER_COLUMN_MAP.

PROVIDER_COLUMN_ENTRY_TYPE_LENGTH

Reprezentuje określoną kolumnę obsługiwaną przez dostawcę.

Składnia

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

Parametry

name
[in] Nazwa kolumny.

Porządkowych
[in] Numer kolumny. Jeśli kolumna nie jest kolumną Zakładka, numer kolumny nie może być 0.

dbtype
[in] Typ danych w dbTYPE.

rozmiar
[in] Rozmiar kolumny w bajtach.

członek
[in] Zmienna składowa w klasie danych, która przechowuje dane.

Uwagi

Podobnie jak PROVIDER_COLUMN_ENTRY_LENGTH , ale także umożliwia określenie typu danych kolumny oraz rozmiaru.

PROVIDER_COLUMN_ENTRY_WSTR

Reprezentuje określoną kolumnę obsługiwaną przez dostawcę.

Składnia

PROVIDER_COLUMN_ENTRY_WSTR(name, ordinal, member)

Parametry

name
[in] Nazwa kolumny.

Porządkowych
[in] Numer kolumny. Jeśli kolumna nie jest kolumną Zakładka, numer kolumny nie może być 0.

członek
[in] Zmienna składowa w klasie danych, która przechowuje dane.

Uwagi

Użyj tego makra, gdy dane kolumny są ciągiem znaków Unicode zakończonym o wartości null, DBTYPE_WSTR.

BEGIN_SCHEMA_MAP

Określa początek mapy schematu.

Składnia

BEGIN_SCHEMA_MAP(SchemaClass);

Parametry

SchemaClass
Klasa zawierająca mapę. Zazwyczaj będzie to klasa sesji.

Uwagi

Aby uzyskać więcej informacji na temat zestawów wierszy schematu, zobacz IDBSchemaRowset w zestawie SDK systemu Windows.

END_SCHEMA_MAP

Określa koniec mapy schematu.

Składnia

END_SCHEMA_MAP()

Uwagi

Aby uzyskać więcej informacji, zobacz IDBSchemaRowsetImpl Class (Klasa IDBSchemaRowsetImpl).

SCHEMA_ENTRY

Kojarzy identyfikator GUID z klasą.

Składnia

SCHEMA_ENTRY(guid,
   rowsetClass);

Parametry

guid
Identyfikator GUID zestawu wierszy schematu. Zobacz IDBSchemaRowset w dokumentacji programisty OLE DB, aby uzyskać listę zestawów wierszy schematu i ich identyfikatorów GUID.

rowsetClass
Klasa, która zostanie utworzona do reprezentowania zestawu wierszy schematu.

Uwagi

Usługa IDBSchemaRowsetImpl może następnie wykonać zapytanie o mapę listy identyfikatorów GUID lub utworzyć zestaw wierszy, jeśli ma on identyfikator GUID. Utworzony zestaw IDBSchemaRowsetImpl wierszy schematu jest podobny do standardowej CRowsetImplklasy pochodnej, z tą różnicą, że musi podać metodę Execute , która ma następujący podpis:

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

Ta Execute funkcja wypełnia dane zestawu wierszy. Kreator projektu ATL tworzy, zgodnie z opisem w IDBSchemaRowset w dokumentacji programisty OLE DB, trzy początkowe zestawy wierszy schematu w projekcie dla każdego z trzech obowiązkowych schematów OLE DB:

  • DBSCHEMA_TABLES

  • DBSCHEMA_COLUMNS

  • DBSCHEMA_PROVIDER_TYPES

Kreator dodaje również trzy odpowiednie wpisy na mapie schematu. Zobacz Tworzenie dostawcy szablonów OLE DB, aby uzyskać więcej informacji na temat tworzenia dostawcy przy użyciu kreatora.

Zobacz też

Szablony dostawców OLE DB
Architektura szablonu dostawcy OLE DB
Tworzenie dostawcy OLE DB
Szablony dostawców OLE DB — dokumentacja
Makra dla szablonów dostawców OLE DB