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 CRowsetImpl
klasy 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