Makros für OLE DB-Anbietervorlagen
Die OLE DB-Vorlagenanbietermakros bieten Funktionen in den folgenden Kategorien:
Eigenschaftensatzzuordnungsmakros
Name | Beschreibung |
---|---|
BEGIN_PROPERTY_SET | Markiert den Anfang eines Eigenschaftensatzes. |
BEGIN_PROPERTY_SET_EX | Markiert den Anfang eines Eigenschaftensatzes. |
BEGIN_PROPSET_MAP | Markiert den Anfang eines Eigenschaftensatzes, der ausgeblendet oder außerhalb des Bereichs des Anbieters definiert werden kann. |
CHAIN_PROPERTY_SET | Verketten von Eigenschaftengruppen. |
END_PROPERTY_SET | Markiert das Ende eines Eigenschaftensatzes. |
END_PROPSET_MAP | Markiert das Ende einer Eigenschaftensatzzuordnung. |
PROPERTY_INFO_ENTRY | Legt eine bestimmte Eigenschaft in einer Eigenschaft fest, die auf einen Standardwert festgelegt ist. |
PROPERTY_INFO_ENTRY_EX | Legt eine bestimmte Eigenschaft in einer Eigenschaft auf einen von Ihnen bereitgestellten Wert fest. Außerdem können Sie Kennzeichnungen und Optionen festlegen. |
PROPERTY_INFO_ENTRY_VALUE | Legt eine bestimmte Eigenschaft in einer Eigenschaft auf einen von Ihnen bereitgestellten Wert fest. |
Spaltenzuordnungsmakros
Name | Beschreibung |
---|---|
BEGIN_PROVIDER_COLUMN_MAP | Markiert den Anfang der Einträge für die Anbieterspaltenzuordnung. |
END_PROVIDER_COLUMN_MAP | Markiert das Ende der Spaltenzuordnungseinträge des Anbieters. |
PROVIDER_COLUMN_ENTRY | Stellt eine bestimmte Spalte dar, die vom Anbieter unterstützt wird. |
PROVIDER_COLUMN_ENTRY_FIXED | Stellt eine bestimmte Spalte dar, die vom Anbieter unterstützt wird. Sie können den Spaltendatentyp angeben. |
PROVIDER_COLUMN_ENTRY_GN | Stellt eine bestimmte Spalte dar, die vom Anbieter unterstützt wird. Sie können die Größe, den Datentyp, die Genauigkeit, die Skalierung und die Schema-Rowset-GUID angeben. |
PROVIDER_COLUMN_ENTRY_LENGTH | Stellt eine bestimmte Spalte dar, die vom Anbieter unterstützt wird. Sie können die Spaltengröße angeben. |
PROVIDER_COLUMN_ENTRY_STR | Stellt eine bestimmte Spalte dar, die vom Anbieter unterstützt wird. Es wird davon ausgegangen, dass der Spaltentyp eine Zeichenfolge ist. |
PROVIDER_COLUMN_ENTRY_TYPE_LENGTH | Stellt eine bestimmte Spalte dar, die vom Anbieter unterstützt wird. Wie PROVIDER_COLUMN_ENTRY_LENGTH können Sie aber auch den Datentyp der Spalte sowie die Größe angeben. |
PROVIDER_COLUMN_ENTRY_WSTR | Stellt eine bestimmte Spalte dar, die vom Anbieter unterstützt wird. Es wird davon ausgegangen, dass der Spaltentyp eine Unicode-Zeichenzeichenfolge ist. |
Schema-Rowset-Makros
Name | Beschreibung |
---|---|
BEGIN_SCHEMA_MAP | Markiert den Anfang einer Schemazuordnung. |
END_SCHEMA_MAP | Markiert das Ende einer Schemazuordnung. |
SCHEMA_ENTRY | Ordnet eine GUID einer Klasse zu. |
Anforderungen
Header: „atldb.h“
BEGIN_PROPERTY_SET
Markiert den Anfang eines Eigenschaftensatzes in einer Eigenschaftensatzzuordnung.
Syntax
BEGIN_PROPERTY_SET(guid)
Parameter
guid
[in] Die Eigenschaften-GUID.
Beispiel
Siehe BEGIN_PROPSET_MAP.
BEGIN_PROPERTY_SET_EX
Markiert den Anfang eines Eigenschaftensatzes in einer Eigenschaftensatzzuordnung.
Syntax
BEGIN_PROPERTY_SET_EX(guid, flags)
Parameter
guid
[in] Die Eigenschaften-GUID.
flags
[in] UPROPSET_HIDDEN für eigenschaftensätze, die Sie nicht verfügbar machen möchten, oder UPROPSET_PASSTHROUGH für einen Anbieter, der Eigenschaften verfügbar macht, die außerhalb des Bereichs des Anbieters definiert sind.
Beispiel
Siehe BEGIN_PROPSET_MAP.
BEGIN_PROPSET_MAP
Markiert den Anfang der Eigenschaftensatzzuordnungseinträge.
Syntax
BEGIN_PROPSET_MAP(Class)
Parameter
Klasse
[in] Die Klasse, in der dieser Eigenschaftensatz angegeben wird. Ein Eigenschaftensatz kann in den folgenden OLE DB-Objekten angegeben werden:
Beispiel
Hier ist eine Beispiel-Eigenschaftensatzzuordnung:
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
Mit diesem Makro werden Eigenschaftengruppen miteinander verkettet.
Syntax
CHAIN_PROPERTY_SET(ChainClass)
Parameter
ChainClass
[in] Der Name der Klasse, für die Eigenschaften verkettet werden sollen. Dies ist eine Klasse, die vom ATL-Projekt-Assistenten generiert wird, der bereits eine Zuordnung enthält (z. B. eine Sitzung, einen Befehl oder eine Datenquellenobjektklasse).
Hinweise
Sie können eine Eigenschaft, die von einer anderen Klasse an Ihre eigene Klasse festgelegt ist, verketten und dann direkt von Ihrer Klasse aus auf die Eigenschaften zugreifen.
Achtung
Verwenden Sie dieses Makro sparsam. Falsche Verwendung kann dazu führen, dass ein Verbraucher die OLE DB-Konformitätstests fehlschlägt.
END_PROPERTY_SET
Markiert das Ende eines Eigenschaftensatzes.
Syntax
END_PROPERTY_SET(guid)
Parameter
guid
[in] Die Eigenschaften-GUID.
Beispiel
Siehe BEGIN_PROPSET_MAP.
END_PROPSET_MAP
Markiert das Ende von Eigenschaftensatzzuordnungseinträgen.
Syntax
END_PROPSET_MAP()
Beispiel
Siehe BEGIN_PROPSET_MAP.
PROPERTY_INFO_ENTRY
Stellt eine bestimmte Eigenschaft in einem Eigenschaftensatz dar.
Syntax
PROPERTY_INFO_ENTRY(dwPropID)
Parameter
dwPropID
[in] Ein DBPROPID -Wert, der in Verbindung mit dem Eigenschaftensatz GUID verwendet werden kann, um eine Eigenschaft zu identifizieren.
Hinweise
Dieses Makro legt den Wert der Eigenschaft vom Typ DWORD
auf einen in ATLDB.H definierten Standardwert fest. Verwenden Sie PROPERTY_INFO_ENTRY_VALUE, um die Eigenschaft auf einen Wert Ihrer Wahl festzulegen. Verwenden Sie PROPERTY_INFO_ENTRY_EX, um die VARTYPE
Eigenschaft und DBPROPFLAGS für die Eigenschaft gleichzeitig festzulegen.
Beispiel
Siehe BEGIN_PROPSET_MAP.
PROPERTY_INFO_ENTRY_EX
Stellt eine bestimmte Eigenschaft in einem Eigenschaftensatz dar.
Syntax
PROPERTY_INFO_ENTRY_EX(dwPropID, vt, dwFlags, value, options)
Parameter
dwPropID
[in] Ein DBPROPID -Wert, der in Verbindung mit dem Eigenschaftensatz GUID verwendet werden kann, um eine Eigenschaft zu identifizieren.
vt
[in] Die VARTYPE
dieses Eigenschaftseintrags. (Definiert in wtypes.h)
dwFlags
[in] Ein DBPROPFLAGS -Wert, der diesen Eigenschaftseintrag beschreibt.
value
[in] Der Eigenschaftswert von Typ DWORD
.
Optionen
Entweder DBPROPOPTIONS_REQUIRED oder DBPROPOPTIONS_SETIFCHEAP. Normalerweise muss ein Anbieter keine Optionen festlegen, da er vom Verbraucher festgelegt wird.
Hinweise
Mit diesem Makro können Sie den Wert der Eigenschaft des Typs DWORD
sowie Optionen und Flags direkt angeben. Um lediglich einen in ATLDB.H definierten Standardwert für eine Eigenschaft festzulegen, verwenden Sie PROPERTY_INFO_ENTRY. Um einen Wert Ihrer Wahl für eine Eigenschaft festzulegen, verwenden Sie PROPERTY_INFO_ENTRY_VALUE.
Beispiel
Siehe BEGIN_PROPSET_MAP.
PROPERTY_INFO_ENTRY_VALUE
Stellt eine bestimmte Eigenschaft in einem Eigenschaftensatz dar.
Syntax
PROPERTY_INFO_ENTRY_VALUE(dwPropID, value)
Parameter
dwPropID
[in] Ein DBPROPID -Wert, der in Verbindung mit dem Eigenschaftensatz GUID verwendet werden kann, um eine Eigenschaft zu identifizieren.
value
[in] Der Eigenschaftswert von Typ DWORD
.
Hinweise
Mit diesem Makro können Sie den Eigenschaftswert des Typs DWORD
direkt angeben. So legen Sie die Eigenschaft auf den Standardwert fest, der in ATLDB definiert ist. H, verwenden Sie PROPERTY_INFO_ENTRY. Verwenden Sie PROPERTY_INFO_ENTRY_EX, um den Wert, die Kennzeichnungen und Optionen für die Eigenschaft festzulegen.
Beispiel
Siehe BEGIN_PROPSET_MAP.
BEGIN_PROVIDER_COLUMN_MAP
Markiert den Anfang der Einträge für die Anbieterspaltenzuordnung.
Syntax
BEGIN_PROVIDER_COLUMN_MAP(theClass)
Parameter
theClass
[in] Der Name der Klasse, zu der diese Karte gehört.
Beispiel
Hier ist eine Beispiel für eine Anbieterspaltenzuordnung:
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
Markiert das Ende der Spaltenzuordnungseinträge des Anbieters.
Syntax
END_PROVIDER_COLUMN_MAP()
Beispiel
Siehe BEGIN_PROVIDER_COLUMN_MAP.
PROVIDER_COLUMN_ENTRY
Stellt eine bestimmte Spalte dar, die vom Anbieter unterstützt wird.
Syntax
PROVIDER_COLUMN_ENTRY (name, ordinal, member)
Parameter
name
[in] Der Spaltenname.
ordinal
[in] Die Spaltennummer. Sofern es sich bei der Spalte nicht um eine Textmarke handelt, darf die Spaltennummer nicht 0 sein.
member
[in] Die Membervariable, dataClass
die der Spalte entspricht.
PROVIDER_COLUMN_ENTRY_FIXED
Stellt eine bestimmte Spalte dar, die vom Anbieter unterstützt wird.
Syntax
PROVIDER_COLUMN_ENTRY_FIXED(name, ordinal, dbtype, member)
Parameter
name
[in] Der Spaltenname.
ordinal
[in] Die Spaltennummer. Sofern es sich bei der Spalte nicht um eine Textmarke handelt, darf die Spaltennummer nicht 0 sein.
dbtype
[in] Der Datentyp in DBTYPE.
member
[in] Die Membervariable, in dataClass
der die Daten gespeichert werden.
Hinweise
Ermöglicht ihnen das Angeben des Spaltendatentyps.
Beispiel
Siehe BEGIN_PROVIDER_COLUMN_MAP.
PROVIDER_COLUMN_ENTRY_GN
Stellt eine bestimmte Spalte dar, die vom Anbieter unterstützt wird.
Syntax
PROVIDER_COLUMN_ENTRY_GN (name, ordinal, flags, colSize, dbtype, precision, scale, guid)
Parameter
name
[in] Der Spaltenname.
ordinal
[in] Die Spaltennummer. Sofern es sich bei der Spalte nicht um eine Textmarke handelt, darf die Spaltennummer nicht 0 sein.
flags
[in] Gibt an, wie Daten zurückgegeben werden. Weitere Informationen finden Sie in der dwFlags
Beschreibung in DBBINDING-Strukturen.
colSize
[in] Die Spaltengröße.
dbtype
[in] Gibt den Datentyp des Werts an. Weitere Informationen finden Sie in der wType
Beschreibung in DBBINDING-Strukturen.
precision
[in] Gibt die Genauigkeit an, die beim Abrufen von Daten verwendet werden soll, wenn dbType DBTYPE_NUMERIC oder DBTYPE_DECIMAL ist. Weitere Informationen finden Sie in der bPrecision
Beschreibung in DBBINDING-Strukturen.
scale
[in] Gibt die Skalierung an, die beim Abrufen von Daten verwendet werden soll, wenn dbType DBTYPE_NUMERIC oder DBTYPE_DECIMAL ist. Weitere Informationen finden Sie in der bScale
Beschreibung in DBBINDING-Strukturen.
guid
Eine Schema-Rowset-GUID. Eine Liste der Schema-Rowsets und deren GUIDs finden Sie unter IDBSchemaRowset in der OLE DB-Programmierreferenz .
Hinweise
Ermöglicht ihnen die Angabe der Spaltengröße, des Datentyps, der Genauigkeit, der Skalierung und der Schema-Rowset-GUID.
PROVIDER_COLUMN_ENTRY_LENGTH
Stellt eine bestimmte Spalte dar, die vom Anbieter unterstützt wird.
Syntax
PROVIDER_COLUMN_ENTRY_LENGTH(name, ordinal, size, member)
Parameter
name
[in] Der Spaltenname.
ordinal
[in] Die Spaltennummer. Sofern es sich bei der Spalte nicht um eine Textmarke handelt, darf die Spaltennummer nicht 0 sein.
size
[in] Die Spaltengröße in Byte.
member
[in] Die Membervariable, in dataClass
der die Spaltendaten gespeichert werden.
Hinweise
Ermöglicht es Ihnen, die Spaltengröße anzugeben.
Beispiel
Siehe BEGIN_PROVIDER_COLUMN_MAP.
PROVIDER_COLUMN_ENTRY_STR
Stellt eine bestimmte Spalte dar, die vom Anbieter unterstützt wird.
Syntax
PROVIDER_COLUMN_ENTRY_STR(name, ordinal, member)
Parameter
name
[in] Der Spaltenname.
ordinal
[in] Die Spaltennummer. Sofern es sich bei der Spalte nicht um eine Textmarke handelt, darf die Spaltennummer nicht 0 sein.
member
[in] Die Membervariable in der Datenklasse, die die Daten speichert.
Hinweise
Verwenden Sie dieses Makro, wenn die Spaltendaten als DBTYPE_STR angenommen werden.
Beispiel
Siehe BEGIN_PROVIDER_COLUMN_MAP.
PROVIDER_COLUMN_ENTRY_TYPE_LENGTH
Stellt eine bestimmte Spalte dar, die vom Anbieter unterstützt wird.
Syntax
PROVIDER_COLUMN_ENTRY_TYPE_LENGTH(name, ordinal, dbtype, size, member)
Parameter
name
[in] Der Spaltenname.
ordinal
[in] Die Spaltennummer. Sofern es sich bei der Spalte nicht um eine Textmarke handelt, darf die Spaltennummer nicht 0 sein.
dbtype
[in] Der Datentyp in DBTYPE.
size
[in] Die Spaltengröße in Byte.
member
[in] Die Membervariable in der Datenklasse, die die Daten speichert.
Hinweise
Ähnlich wie PROVIDER_COLUMN_ENTRY_LENGTH können Sie aber auch den Datentyp der Spalte sowie die Größe angeben.
PROVIDER_COLUMN_ENTRY_WSTR
Stellt eine bestimmte Spalte dar, die vom Anbieter unterstützt wird.
Syntax
PROVIDER_COLUMN_ENTRY_WSTR(name, ordinal, member)
Parameter
name
[in] Der Spaltenname.
ordinal
[in] Die Spaltennummer. Sofern es sich bei der Spalte nicht um eine Textmarke handelt, darf die Spaltennummer nicht 0 sein.
member
[in] Die Membervariable in der Datenklasse, die die Daten speichert.
Hinweise
Verwenden Sie dieses Makro, wenn es sich bei den Spaltendaten um eine mit Null beendete Unicode-Zeichenzeichenfolge handelt, DBTYPE_WSTR.
BEGIN_SCHEMA_MAP
Gibt den Anfang einer Schemazuordnung an.
Syntax
BEGIN_SCHEMA_MAP(SchemaClass);
Parameter
SchemaClass
Die Klasse, die die MAP enthält. In der Regel ist dies die Sitzungsklasse.
Hinweise
Weitere Informationen zu Schema-Rowsets finden Sie unter IDBSchemaRowset im Windows SDK.
END_SCHEMA_MAP
Gibt das Ende der Schemazuordnung an.
Syntax
END_SCHEMA_MAP()
Hinweise
Weitere Informationen finden Sie unter IDBSchemaRowsetImpl Class.
SCHEMA_ENTRY
Ordnet eine GUID einer Klasse zu.
Syntax
SCHEMA_ENTRY(guid,
rowsetClass);
Parameter
guid
Eine Schema-Rowset-GUID. Eine Liste der Schema-Rowsets und deren GUIDs finden Sie unter IDBSchemaRowset in der OLE DB-Programmierreferenz .
rowsetClass
Die Klasse, die erstellt wird, um das Schema-Rowset darzustellen.
Hinweise
IDBSchemaRowsetImpl kann dann die Zuordnung nach einer Liste von GUIDs abfragen oder ein Rowset erstellen, wenn sie eine GUID erhält. Das vom Schema-Rowset erstellte IDBSchemaRowsetImpl
Objekt ähnelt einer standardmäßigen CRowsetImpl
abgeleiteten Klasse, mit der Ausnahme, dass sie eine Execute
Methode mit der folgenden Signatur bereitstellen muss:
HRESULT Execute (LONG* pcRowsAffected,
ULONG cRestrictions,
const VARIANT* rgRestrictions);
Diese Execute
Funktion füllt die Daten des Rowsets auf. Der ATL-Projekt-Assistent erstellt, wie in IDBSchemaRowset in der OLE DB-Programmierreferenz beschrieben, drei anfängliche Schema-Rowsets im Projekt für jedes der drei obligatorischen OLE DB-Schemas:
DBSCHEMA_TABLES
DBSCHEMA_COLUMNS
DBSCHEMA_PROVIDER_TYPES
Der Assistent fügt außerdem drei entsprechende Einträge in der Schemazuordnung hinzu. Weitere Informationen zur Verwendung des Assistenten zum Erstellen eines Anbieters finden Sie unter Erstellen eines OLE DB-Vorlagenanbieters .
Siehe auch
OLE DB-Anbietervorlagen
Architektur von OLE DB-Anbietervorlagen
Erstellen eines OLE DB-Anbieters
Referenz der OLE DB-Anbietervorlagen
Makros für OLE DB-Anbietervorlagen