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