Udostępnij za pośrednictwem


Klasa CXMLAccessor

Umożliwia dostęp do źródeł danych jako danych ciągu, gdy nie masz wiedzy na temat schematu magazynu danych (podstawowej struktury).

Składnia

class CXMLAccessor : public CDynamicStringAccessorW

Wymagania

Nagłówek: atldbcli.h

Elementy członkowskie

Metody

Nazwa/nazwisko opis
GetXMLColumnData Pobiera informacje o kolumnie.
GetXMLRowData Pobiera całą zawartość tabeli według wierszy.

Uwagi

Jednak różni się od CDynamicStringAccessorW tego, CXMLAccessor że konwertuje wszystkie dane dostępne z magazynu danych jako dane sformatowane w formacie XML (oznakowane). Jest to szczególnie przydatne w przypadku danych wyjściowych stron sieci Web obsługujących kod XML. Nazwy tagów XML będą zgodne z nazwami kolumn magazynu danych tak blisko, jak to możliwe.

Użyj CDynamicAccessor metod, aby uzyskać informacje o kolumnie. Te informacje w kolumnie służą do dynamicznego tworzenia metody dostępu w czasie wykonywania.

Informacje o kolumnie są przechowywane w buforze utworzonym i zarządzanym przez tę klasę. Uzyskaj informacje o kolumnie przy użyciu metody GetXMLColumnData lub uzyskaj dane kolumn według wierszy przy użyciu metody GetXMLRowData.

Przykład

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

Pobiera informacje o typie kolumny tabeli jako dane ciągów w formacie XML według kolumny.

Składnia

HRESULT GetXMLColumnData(CSimpleStringW& strOutput) throw();

Parametry

strOutput
[out] Odwołanie do buforu ciągów zawierającego informacje o typie kolumny do pobrania. Ciąg jest sformatowany przy użyciu nazw tagów XML, które są zgodne z nazwami kolumn magazynu danych.

Wartość zwracana

Jedna ze standardowych wartości HRESULT.

Uwagi

Poniżej przedstawiono sposób formatowania informacji o typie kolumny w formacie XML. type określa typ danych kolumny. Należy pamiętać, że typy danych są oparte na typach danych OLE DB, a nie na bazach danych, do których uzyskuje się dostęp.

<columninfo>

<column type = I2/> ColumnName

</columninfo>

CXMLAccessor::GetXMLRowData

Pobiera całą zawartość tabeli jako dane ciągów w formacie XML według wiersza.

Składnia

HRESULT GetXMLRowData(CSimpleStringW& strOutput,
   bool bAppend = false) throw();

Parametry

strOutput
[out] Odwołanie do buforu zawierającego dane tabeli do pobrania. Dane są formatowane jako dane ciągu z nazwami tagów XML, które są zgodne z nazwami kolumn magazynu danych.

bAppend
[in] Wartość logiczna określająca, czy dołączyć ciąg na końcu danych wyjściowych.

Wartość zwracana

Jedna ze standardowych wartości HRESULT.

Uwagi

Poniżej przedstawiono sposób formatowania danych wierszy w formacie XML. DATA Poniżej przedstawiono dane wierszy. Użyj metod przenoszenia, aby przejść do żądanego wiersza.

<row>

<column name>DATA</column name>

</row>

Zobacz też

Szablony konsumentów OLE DB
Szablony konsumentów OLE DB — dokumentacja
CAccessor, klasa
CDynamicAccessor, klasa
CDynamicParameterAccessor, klasa
CDynamicStringAccessor, klasa
CDynamicStringAccessorA, klasa
CDynamicStringAccessorW, klasa
CManualAccessor, klasa