CXMLAccessor-Klasse
Ermöglicht den Zugriff auf Datenquellen als Zeichenfolgendaten, wenn Sie nicht über Kenntnisse über das Schema des Datenspeichers (zugrunde liegende Struktur) verfügen.
Syntax
class CXMLAccessor : public CDynamicStringAccessorW
Requirements (Anforderungen)
Header: atldbcli.h
Member
Methoden
Name | BESCHREIBUNG |
---|---|
GetXMLColumnData | Ruft die Spalteninformationen ab. |
GetXMLRowData | Ruft den gesamten Inhalt einer Tabelle nach Zeilen ab. |
Hinweise
Unterscheidet sich jedoch von darinCDynamicStringAccessorW
, dass alle Daten, CXMLAccessor
auf die aus dem Datenspeicher zugegriffen wird, in XML-formatierte (markierte) Daten konvertiert werden. Dies ist besonders nützlich für die Ausgabe an XML-fähige Webseiten. Die XML-Tagnamen stimmen so genau wie möglich mit den Spaltennamen des Datenspeichers überein.
Verwenden Sie CDynamicAccessor
Methoden, um Spalteninformationen abzurufen. Sie verwenden diese Spalteninformationen, um zur Laufzeit dynamisch einen Accessor zu erstellen.
Die Spalteninformationen werden in einem Puffer gespeichert, der von dieser Klasse erstellt und verwaltet wird. Abrufen von Spalteninformationen mit GetXMLColumnData oder Abrufen von Spaltendaten nach Zeilen mithilfe von GetXMLRowData.
Beispiel
void DoCXMLAccessorTest()
{
HRESULT hr = CoInitialize(NULL);
CDataSource ds;
CSession ss;
CTable<CXMLAccessor> rs;
// The following is an example initialization string:
hr = ds.OpenFromInitializationString(L"Provider=Microsoft.Jet.OLEDB.4.0;"
L"User ID=Admin;Data Source=Snippet.mdb;Mode=Share Deny None;"
L"Extended Properties=\"\";Jet OLEDB:System database=\"\";"
L"Jet OLEDB:Registry Path=\"\";Jet OLEDB:Database Password=\"\";"
L"Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;"
L"Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;"
L"Jet OLEDB:New Database Password=\"\";Jet OLEDB:Create System Database=False;"
L"Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;"
L"Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False");
hr = ss.Open(ds);
hr = rs.Open(ss, L"Customer"); // Customer is a table name in the database.
CStringW strColumnInfo;
rs.GetXMLColumnData(strColumnInfo);
wprintf_s(L"%s\n", strColumnInfo);
hr = rs.MoveFirst();
while(SUCCEEDED(hr) && hr != DB_S_ENDOFROWSET)
{
CStringW strRowData;
rs.GetXMLRowData(strRowData);
wprintf_s(L"%s\n", strRowData);
hr = rs.MoveNext();
}
ss.Close();
ds.Close();
CoUninitialize();
}
CXMLAccessor::GetXMLColumnData
Ruft die Spaltentypinformationen einer Tabelle als XML-formatierte Zeichenfolgendaten nach Spalte ab.
Syntax
HRESULT GetXMLColumnData(CSimpleStringW& strOutput) throw();
Parameter
strOutput
[out] Ein Verweis auf einen Zeichenfolgenpuffer, der die abzurufenden Spaltentypinformationen enthält. Die Zeichenfolge wird mit XML-Tagnamen formatiert, die mit den Spaltennamen des Datenspeichers übereinstimmen.
Rückgabewert
Einer der HRESULT-Standardwerte.
Hinweise
Im Folgenden wird gezeigt, wie die Spaltentypinformationen in XML formatiert werden. type
gibt den Datentyp der Spalte an. Beachten Sie, dass die Datentypen auf OLE DB Datentypen basieren, nicht auf denen der Datenbank, auf die zugegriffen wird.
<columninfo>
<column type = I2/> ColumnName
</columninfo>
CXMLAccessor::GetXMLRowData
Ruft den gesamten Inhalt einer Tabelle als XML-formatierte Zeichenfolgendaten nach Zeile ab.
Syntax
HRESULT GetXMLRowData(CSimpleStringW& strOutput,
bool bAppend = false) throw();
Parameter
strOutput
[out] Ein Verweis auf einen Puffer, der die abzurufenden Tabellendaten enthält. Die Daten werden als Zeichenfolgendaten mit XML-Tagnamen formatiert, die mit den Spaltennamen des Datenspeichers übereinstimmen.
bAppend
[in] Ein boolescher Wert, der angibt, ob eine Zeichenfolge an das Ende der Ausgabedaten angefügt werden soll.
Rückgabewert
Einer der HRESULT-Standardwerte.
Hinweise
Im Folgenden wird gezeigt, wie die Zeilendaten in XML formatiert werden. DATA
unten stellt die Zeilendaten dar. Verwenden Sie Move-Methoden, um zur gewünschten Zeile zu wechseln.
<row>
<column name>DATA</column name>
</row>
Siehe auch
OLE DB-Consumervorlagen
Referenz zu OLE DB Consumervorlagen
CAccessor-Klasse
CDynamicAccessor-Klasse
CDynamicParameterAccessor-Klasse
CDynamicStringAccessor-Klasse
CDynamicStringAccessorA-Klasse
CDynamicStringAccessorW-Klasse
CManualAccessor-Klasse