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