Freigeben über


CDynamicStringAccessor-Klasse

Ermöglicht es Ihnen, auf eine Datenquelle zuzugreifen, wenn Sie kein Wissen über das Datenbankschema haben (die zugrunde liegende Struktur der Datenbank).

Syntax

template< typename BaseType, DBTYPEENUM OleDbType >
class CDynamicStringAccessorT : public CDynamicAccessor

Anforderungen

Header: atldbcli.h

Member

Methoden

Name Beschreibung
GetString Ruft die angegebenen Spaltendaten als Zeichenfolge ab.
SetString Legt die angegebenen Spaltendaten als Zeichenfolge fest.

Hinweise

Während CDynamicAccessor Daten im vom Anbieter gemeldeten systemeigenen Format anfordert, fordert der Anbieter an, alle Daten abzurufen, CDynamicStringAccessor auf die vom Datenspeicher als Zeichenfolgendaten zugegriffen wird. Dies ist besonders nützlich für einfache Aufgaben, für die keine Berechnung von Werten im Datenspeicher erforderlich ist, z. B. das Anzeigen oder Drucken des Datenspeicherinhalts.

Der systemeigene Typ von Spaltendaten im Datenspeicher spielt keine Rolle. solange der Anbieter die Datenkonvertierung unterstützen kann, liefert er die Daten im Zeichenfolgenformat. Wenn der Anbieter die Konvertierung vom systemeigenen Datentyp nicht in eine Zeichenfolge unterstützt (was nicht üblich ist), gibt der anfordernde Aufruf den Erfolgswert DB_S_ERRORSOCCURED zurück, und der Status für die entsprechende Spalte weist auf ein Konvertierungsproblem mit DBSTATUS_E_CANTCONVERTVALUE hin.

Verwenden Sie CDynamicStringAccessor Methoden zum Abrufen von Spalteninformationen. Sie verwenden diese Spalteninformationen, um einen Accessor dynamisch zur Laufzeit zu erstellen.

Die Spalteninformationen werden in einem puffer gespeichert, der von dieser Klasse erstellt und verwaltet wird. Rufen Sie Daten aus dem Puffer mithilfe von GetString ab, oder speichern Sie sie mithilfe von SetString im Puffer.

Eine Diskussion und Beispiele für die Verwendung der Klassen für dynamische Accessor finden Sie unter Verwenden von dynamischen Accessoren.

CDynamicStringAccessor::GetString

Ruft die angegebenen Spaltendaten als Zeichenfolge ab.

Syntax

BaseType* GetString(DBORDINAL nColumn) const throw();

BaseType* GetString(const CHAR* pColumnName) const throw();

BaseType* GetString(const WCHAR* pColumnName) const throw();

Parameter

nColumn
[in] Die Spaltennummer. Spaltennummern beginnen mit 1. Wenn vorhanden, bezieht sich der Wert 0 auf die Textmarkenspalte.

pColumnName
[in] Ein Zeiger auf eine Zeichenfolge, die den Spaltennamen enthält.

Rückgabewert

Ein Zeiger auf den aus der angegebenen Spalte abgerufenen Zeichenfolgenwert. Der Wert ist vom Typ BaseType, der CHAR oder WCHAR sein wird, je nachdem, ob _UNICODE definiert ist oder nicht. Gibt NULL zurück, wenn die angegebene Spalte nicht gefunden wird.

Hinweise

Das zweite Überschreibungsformular verwendet den Spaltennamen als ANSI-Zeichenfolge. Das dritte Überschreibungsformular verwendet den Spaltennamen als Unicode-Zeichenfolge.

CDynamicStringAccessor::SetString

Legt die angegebenen Spaltendaten als Zeichenfolge fest.

Syntax

HRESULT SetString(DBORDINAL nColumn,
   BaseType* data) throw();

HRESULT SetString(const CHAR* pColumnName,
   BaseType* data) throw();

HRESULT SetString(const WCHAR* pColumnName,
   BaseType* data) throw();

Parameter

nColumn
[in] Die Spaltennummer. Spaltennummern beginnen mit 1. Der Sonderwert von 0 bezieht sich ggf. auf die Textmarkenspalte.

pColumnName
[in] Ein Zeiger auf eine Zeichenfolge, die den Spaltennamen enthält.

data
[in] Ein Zeiger auf die Zeichenfolgendaten, die in die angegebene Spalte geschrieben werden sollen.

Rückgabewert

Ein Zeiger auf den Zeichenfolgenwert, auf den die angegebene Spalte festgelegt werden soll. Der Wert ist vom Typ BaseType, der CHAR oder WCHAR sein wird, je nachdem, ob _UNICODE definiert ist oder nicht.

Hinweise

Das zweite Überschreibungsformular verwendet den Spaltennamen als ANSI-Zeichenfolge und das dritte Überschreibungsformular verwendet den Spaltennamen als Unicode-Zeichenfolge.

Wenn _SECURE_ATL definiert ist, um einen Wert ungleich Null zu haben, wird ein Laufzeit assertionsfehler generiert, wenn die Eingabedatenzeichenfolge länger als die maximal zulässige Länge der Datenspalte ist. Andernfalls wird die Eingabezeichenfolge abgeschnitten, wenn sie länger als die maximal zulässige Länge ist.

Siehe auch

OLE DB-Consumervorlagen
Referenz der OLE DB-Consumervorlagen
CAccessor-Klasse
CDynamicParameterAccessor-Klasse
CManualAccessor-Klasse
CDynamicAccessor-Klasse
CDynamicStringAccessorA-Klasse
CDynamicStringAccessorW-Klasse
CXMLAccessor-Klasse