Sdílet prostřednictvím


Makra pro šablony zprostředkovatele OLE DB

Makra zprostředkovatele šablon OLE DB nabízejí funkce v následujících kategoriích:

Makra map sady vlastností

Název Popis
BEGIN_PROPERTY_SET Označí začátek sady vlastností.
BEGIN_PROPERTY_SET_EX Označí začátek sady vlastností.
BEGIN_PROPSET_MAP Označí začátek sady vlastností, která může být skrytá nebo definovaná mimo rozsah zprostředkovatele.
CHAIN_PROPERTY_SET Zřetědí skupiny vlastností.
END_PROPERTY_SET Označí konec sady vlastností.
END_PROPSET_MAP Označí konec mapy sady vlastností.
PROPERTY_INFO_ENTRY Nastaví určitou vlastnost ve vlastnosti nastavené na výchozí hodnotu.
PROPERTY_INFO_ENTRY_EX Nastaví konkrétní vlastnost ve vlastnosti nastavené na hodnotu, kterou jste zadali. Umožňuje také nastavit příznaky a možnosti.
PROPERTY_INFO_ENTRY_VALUE Nastaví konkrétní vlastnost ve vlastnosti nastavené na hodnotu, kterou jste zadali.

Makra map sloupců

Název Popis
BEGIN_PROVIDER_COLUMN_MAP Označí začátek položek mapování sloupců zprostředkovatele.
END_PROVIDER_COLUMN_MAP Označí konec položek mapování sloupců zprostředkovatele.
PROVIDER_COLUMN_ENTRY Představuje konkrétní sloupec podporovaný poskytovatelem.
PROVIDER_COLUMN_ENTRY_FIXED Představuje konkrétní sloupec podporovaný poskytovatelem. Můžete zadat datový typ sloupce.
PROVIDER_COLUMN_ENTRY_GN Představuje konkrétní sloupec podporovaný poskytovatelem. Můžete zadat velikost sloupce, datový typ, přesnost, měřítko a identifikátor GUID sady řádků schématu.
PROVIDER_COLUMN_ENTRY_LENGTH Představuje konkrétní sloupec podporovaný poskytovatelem. Můžete zadat velikost sloupce.
PROVIDER_COLUMN_ENTRY_STR Představuje konkrétní sloupec podporovaný poskytovatelem. Předpokládá se, že typ sloupce je řetězec.
PROVIDER_COLUMN_ENTRY_TYPE_LENGTH Představuje konkrétní sloupec podporovaný poskytovatelem. Stejně jako PROVIDER_COLUMN_ENTRY_LENGTH, ale také umožňuje zadat datový typ sloupce i velikost.
PROVIDER_COLUMN_ENTRY_WSTR Představuje konkrétní sloupec podporovaný poskytovatelem. Předpokládá se, že typ sloupce je řetězec znaků Unicode.

Makra sady řádků schématu

Název Popis
BEGIN_SCHEMA_MAP Označí začátek mapy schématu.
END_SCHEMA_MAP Označí konec mapy schématu.
SCHEMA_ENTRY Přidruží identifikátor GUID ke třídě.

Požadavky

Hlavička: atldb.h

BEGIN_PROPERTY_SET

Označí začátek sady vlastností v mapě sady vlastností.

Syntaxe

BEGIN_PROPERTY_SET(guid)

Parametry

identifikátor guid
[v] Identifikátor GUID vlastnosti.

Příklad

Viz BEGIN_PROPSET_MAP.

BEGIN_PROPERTY_SET_EX

Označí začátek sady vlastností v mapě sady vlastností.

Syntaxe

BEGIN_PROPERTY_SET_EX(guid, flags)

Parametry

identifikátor guid
[v] Identifikátor GUID vlastnosti.

vlajky
[v] UPROPSET_HIDDEN pro všechny sady vlastností, které nechcete zveřejnit, nebo UPROPSET_PASSTHROUGH pro poskytovatele, který zveřejňuje vlastnosti definované mimo rozsah poskytovatele.

Příklad

Viz BEGIN_PROPSET_MAP.

BEGIN_PROPSET_MAP

Označí začátek položky mapování sady vlastností.

Syntaxe

BEGIN_PROPSET_MAP(Class)

Parametry

Třída
[v] Třída, ve které je tato sada vlastností určena. Sadu vlastností lze zadat v následujících objektech OLE DB:

Příklad

Tady je ukázková mapa sady vlastností:

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

Toto makro zřetědí skupiny vlastností.

Syntaxe

CHAIN_PROPERTY_SET(ChainClass)

Parametry

ChainClass
[v] Název třídy pro řetězení vlastností. Jedná se o třídu vygenerovanou Průvodcem projektem ATL, která již obsahuje mapu (například relaci, příkaz nebo třídu objektu zdroje dat).

Poznámky

Vlastnost nastavenou z jiné třídy můžete zřetězovat do vlastní třídy a pak přistupovat k vlastnostem přímo z vaší třídy.

Upozornění

Toto makro používejte střídmě. Nesprávné použití může způsobit selhání testů shody OLE DB.

END_PROPERTY_SET

Označí konec sady vlastností.

Syntaxe

END_PROPERTY_SET(guid)

Parametry

identifikátor guid
[v] Identifikátor GUID vlastnosti.

Příklad

Viz BEGIN_PROPSET_MAP.

END_PROPSET_MAP

Označí konec položek mapování sady vlastností.

Syntaxe

END_PROPSET_MAP()

Příklad

Viz BEGIN_PROPSET_MAP.

PROPERTY_INFO_ENTRY

Představuje konkrétní vlastnost v sadě vlastností.

Syntaxe

PROPERTY_INFO_ENTRY(dwPropID)

Parametry

dwPropID
[v] Hodnota DBPROPID , kterou lze použít ve spojení s identifikátorem GUID sady vlastností k identifikaci vlastnosti.

Poznámky

Toto makro nastaví hodnotu vlastnosti typu DWORD na výchozí hodnotu definovanou v ATLDB.H. Pokud chcete nastavit vlastnost na hodnotu podle vašeho výběru, použijte PROPERTY_INFO_ENTRY_VALUE. Chcete-li nastavit VARTYPE a DBPROPFLAGS pro vlastnost současně, použijte PROPERTY_INFO_ENTRY_EX.

Příklad

Viz BEGIN_PROPSET_MAP.

PROPERTY_INFO_ENTRY_EX

Představuje konkrétní vlastnost v sadě vlastností.

Syntaxe

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

Parametry

dwPropID
[v] Hodnota DBPROPID , kterou lze použít ve spojení s identifikátorem GUID sady vlastností k identifikaci vlastnosti.

Vt
[v] Položka VARTYPE této vlastnosti. (Definováno ve wtypes.h)

dwFlags
[v] Hodnota DBPROPFLAGS popisující tuto položku vlastnosti.

value
[v] Hodnota vlastnosti typu DWORD.

volby
Buď DBPROPOPTIONS_REQUIRED, nebo DBPROPOPTIONS_SETIFCHEAP. Za normálních okolností poskytovatel nemusí nastavit možnosti , protože je nastaven příjemcem.

Poznámky

Pomocí tohoto makra můžete přímo zadat hodnotu vlastnosti typu DWORD a také možnosti a příznaky. Chcete-li pouze nastavit vlastnost na výchozí hodnotu definovanou v ATLDB. H, použijte PROPERTY_INFO_ENTRY. Pokud chcete nastavit vlastnost na hodnotu podle svého výběru, bez nastavení možností nebo příznaků na ní použijte PROPERTY_INFO_ENTRY_VALUE.

Příklad

Viz BEGIN_PROPSET_MAP.

PROPERTY_INFO_ENTRY_VALUE

Představuje konkrétní vlastnost v sadě vlastností.

Syntaxe

PROPERTY_INFO_ENTRY_VALUE(dwPropID, value)

Parametry

dwPropID
[v] Hodnota DBPROPID , kterou lze použít ve spojení s identifikátorem GUID sady vlastností k identifikaci vlastnosti.

value
[v] Hodnota vlastnosti typu DWORD.

Poznámky

Pomocí tohoto makra můžete přímo zadat hodnotu vlastnosti typu DWORD. Chcete-li nastavit vlastnost na výchozí hodnotu definovanou v ATLDB. H, použijte PROPERTY_INFO_ENTRY. K nastavení hodnoty, příznaků a možností vlastnosti použijte PROPERTY_INFO_ENTRY_EX.

Příklad

Viz BEGIN_PROPSET_MAP.

BEGIN_PROVIDER_COLUMN_MAP

Označí začátek položek mapování sloupců zprostředkovatele.

Syntaxe

BEGIN_PROVIDER_COLUMN_MAP(theClass)

Parametry

theClass
[v] Název třídy, do které mapování patří.

Příklad

Tady je ukázková mapa sloupců zprostředkovatele:

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

Označí konec položek mapování sloupců zprostředkovatele.

Syntaxe

END_PROVIDER_COLUMN_MAP()

Příklad

Viz BEGIN_PROVIDER_COLUMN_MAP.

PROVIDER_COLUMN_ENTRY

Představuje konkrétní sloupec podporovaný poskytovatelem.

Syntaxe

PROVIDER_COLUMN_ENTRY (name, ordinal, member)

Parametry

Jméno
[v] Název sloupce.

pořadový
[v] Číslo sloupce. Pokud sloupec není sloupec Záložka, nesmí být číslo sloupce 0.

člen
[v] Proměnná dataClass člena odpovídající sloupci.

PROVIDER_COLUMN_ENTRY_FIXED

Představuje konkrétní sloupec podporovaný poskytovatelem.

Syntaxe

PROVIDER_COLUMN_ENTRY_FIXED(name, ordinal, dbtype, member)

Parametry

Jméno
[v] Název sloupce.

pořadový
[v] Číslo sloupce. Pokud sloupec není sloupec Záložka, nesmí být číslo sloupce 0.

dbtype
[v] Datový typ v DBTYPE.

člen
[v] Proměnná člena, ve dataClass které jsou uložena data.

Poznámky

Umožňuje zadat datový typ sloupce.

Příklad

Viz BEGIN_PROVIDER_COLUMN_MAP.

PROVIDER_COLUMN_ENTRY_GN

Představuje konkrétní sloupec podporovaný poskytovatelem.

Syntaxe

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

Parametry

Jméno
[v] Název sloupce.

pořadový
[v] Číslo sloupce. Pokud sloupec není sloupec Záložka, nesmí být číslo sloupce 0.

vlajky
[v] Určuje způsob vrácení dat. Podívejte se na dwFlags popis v dbBINDING Strukturách.

colSize
[v] Velikost sloupce.

dbtype
[v] Určuje datový typ hodnoty. Podívejte se na wType popis v dbBINDING Strukturách.

přesnost
[v] Určuje přesnost, která se má použít při získávání dat, pokud je dbType DBTYPE_NUMERIC nebo DBTYPE_DECIMAL. Podívejte se na bPrecision popis v dbBINDING Strukturách.

škála
[v] Označuje škálování, které se má použít při získávání dat, pokud je dbType DBTYPE_NUMERIC nebo DBTYPE_DECIMAL. Podívejte se na bScale popis v dbBINDING Strukturách.

identifikátor guid
Identifikátor GUID sady řádků schématu. Seznam sad řádků schématu a jejich identifikátorů GUID najdete v části IDBSchemaRowset v referenčních informacích programátora OLE DB.

Poznámky

Umožňuje zadat velikost sloupce, datový typ, přesnost, měřítko a identifikátor GUID sady řádků schématu.

PROVIDER_COLUMN_ENTRY_LENGTH

Představuje konkrétní sloupec podporovaný poskytovatelem.

Syntaxe

PROVIDER_COLUMN_ENTRY_LENGTH(name, ordinal, size, member)

Parametry

Jméno
[v] Název sloupce.

pořadový
[v] Číslo sloupce. Pokud sloupec není sloupec Záložka, nesmí být číslo sloupce 0.

velikost
[v] Velikost sloupce v bajtech.

člen
[v] Proměnná člena, ve dataClass které jsou uložena data sloupce.

Poznámky

Umožňuje zadat velikost sloupce.

Příklad

Viz BEGIN_PROVIDER_COLUMN_MAP.

PROVIDER_COLUMN_ENTRY_STR

Představuje konkrétní sloupec podporovaný poskytovatelem.

Syntaxe

PROVIDER_COLUMN_ENTRY_STR(name, ordinal, member)

Parametry

Jméno
[v] Název sloupce.

pořadový
[v] Číslo sloupce. Pokud sloupec není sloupec Záložka, nesmí být číslo sloupce 0.

člen
[v] Členová proměnná v datové třídě, která ukládá data.

Poznámky

Toto makro použijte, pokud se předpokládá, že data sloupce budou DBTYPE_STR.

Příklad

Viz BEGIN_PROVIDER_COLUMN_MAP.

PROVIDER_COLUMN_ENTRY_TYPE_LENGTH

Představuje konkrétní sloupec podporovaný poskytovatelem.

Syntaxe

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

Parametry

Jméno
[v] Název sloupce.

pořadový
[v] Číslo sloupce. Pokud sloupec není sloupec Záložka, nesmí být číslo sloupce 0.

dbtype
[v] Datový typ v DBTYPE.

velikost
[v] Velikost sloupce v bajtech.

člen
[v] Členová proměnná v datové třídě, která ukládá data.

Poznámky

Podobá se PROVIDER_COLUMN_ENTRY_LENGTH , ale také umožňuje zadat datový typ sloupce i velikost.

PROVIDER_COLUMN_ENTRY_WSTR

Představuje konkrétní sloupec podporovaný poskytovatelem.

Syntaxe

PROVIDER_COLUMN_ENTRY_WSTR(name, ordinal, member)

Parametry

Jméno
[v] Název sloupce.

pořadový
[v] Číslo sloupce. Pokud sloupec není sloupec Záložka, nesmí být číslo sloupce 0.

člen
[v] Členová proměnná v datové třídě, která ukládá data.

Poznámky

Toto makro použijte, pokud data sloupce mají null ukončený znakový řetězec Unicode, DBTYPE_WSTR.

BEGIN_SCHEMA_MAP

Označuje začátek mapy schématu.

Syntaxe

BEGIN_SCHEMA_MAP(SchemaClass);

Parametry

SchemaClass
Třída, která obsahuje MAP. Obvykle se jedná o třídu relace.

Poznámky

Další informace o sadách řádků schématu najdete v tématu IDBSchemaRowset v sadě Windows SDK.

END_SCHEMA_MAP

Označuje konec mapy schématu.

Syntaxe

END_SCHEMA_MAP()

Poznámky

Další informace naleznete v tématu IDBSchemaRowsetImpl – třída.

SCHEMA_ENTRY

Přidruží identifikátor GUID ke třídě.

Syntaxe

SCHEMA_ENTRY(guid,
   rowsetClass);

Parametry

identifikátor guid
Identifikátor GUID sady řádků schématu. Seznam sad řádků schématu a jejich identifikátorů GUID najdete v části IDBSchemaRowset v referenčních informacích programátora OLE DB.

rowsetClass
Třída, která bude vytvořena pro reprezentaci sady řádků schématu.

Poznámky

IDBSchemaRowsetImpl pak může dotazovat mapu na seznam identifikátorů GUID, nebo může vytvořit sadu řádků, pokud má identifikátor GUID. Sada řádků IDBSchemaRowsetImpl schématu se podobá standardní CRowsetImpl-odvozené třídě, s výjimkou musí poskytnout metodu Execute , která má následující podpis:

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

Tato Execute funkce naplní data sady řádků. Průvodce projektem ATL vytvoří, jak je popsáno v IDBSchemaRowset v referenci programátora OLE DB, tři počáteční sady řádků schématu v projektu pro každé ze tří povinných schémat OLE DB:

  • DBSCHEMA_TABLES

  • DBSCHEMA_COLUMNS

  • DBSCHEMA_PROVIDER_TYPES

Průvodce také přidá do mapy schématu tři odpovídající položky. Další informace o vytvoření zprostředkovatele pomocí průvodce k vytvoření zprostředkovatele naleznete v tématu Vytvoření zprostředkovatele OLE DB.

Viz také

Šablony zprostředkovatele OLE DB
Architektura šablon zprostředkovatele OLE DB
Vytvoření zprostředkovatele OLE DB
Referenční dokumentace k šablonám zprostředkovatelů OLE DB
Makra pro šablony zprostředkovatele OLE DB