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