CXMLAccessor-Klasse
Ermöglicht ihnen den Zugriff auf Datenquellen als Zeichenfolgendaten, wenn Sie kein Wissen über das Schema des Datenspeichers (zugrunde liegende Struktur) haben.
Syntax
class CXMLAccessor : public CDynamicStringAccessorW
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 davonCDynamicStringAccessorW
, dass alle Daten, auf die aus dem Datenspeicher zugegriffen wird, CXMLAccessor
als XML-formatierte (markierte) Daten konvertiert werden. Dies ist besonders nützlich für die Ausgabe auf XML-fähige Webseiten. Die XML-Tagnamen entsprechen den Spaltennamen des Datenspeichers so genau wie möglich.
Verwenden Sie CDynamicAccessor
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. Abrufen von Spalteninformationen mithilfe von GetXMLColumnData oder Abrufen von Spaltendaten 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 ist mit XML-Tagnamen formatiert, die den Spaltennamen des Datenspeichers entsprechen.
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 die Datentypen 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 den Spaltennamen des Datenspeichers entsprechen.
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 sind die Zeilendaten dargestellt. Verwenden Sie Move-Methoden, um zur gewünschten Zeile zu wechseln.
<row>
<column name>DATA</column name>
</row>
Siehe auch
OLE DB-Consumervorlagen
Referenz der OLE DB-Consumervorlagen
CAccessor-Klasse
CDynamicAccessor-Klasse
CDynamicParameterAccessor-Klasse
CDynamicStringAccessor-Klasse
CDynamicStringAccessorA-Klasse
CDynamicStringAccessorW-Klasse
CManualAccessor-Klasse