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