CXMLAccessor – třída
Umožňuje přístup ke zdrojům dat jako řetězcovým datům, pokud nemáte žádné znalosti schématu úložiště dat (základní struktura).
Syntaxe
class CXMLAccessor : public CDynamicStringAccessorW
Požadavky
Hlavička: atldbcli.h
Členové
Metody
Název | Popis |
---|---|
GetXMLColumnData | Načte informace o sloupci. |
GetXMLRowData | Načte celý obsah tabulky podle řádků. |
Poznámky
Liší se ale od CDynamicStringAccessorW
toho, CXMLAccessor
že převádí všechna data přístupná z úložiště dat jako data ve formátu XML (označená). To je užitečné zejména pro výstup webových stránek podporujících XML. Názvy značek XML budou co nejblíže odpovídat názvům sloupců úložiště dat.
K získání informací o sloupci použijte CDynamicAccessor
metody. Tyto informace o sloupci slouží k dynamickému vytvoření přístupového objektu za běhu.
Informace o sloupci jsou uloženy ve vyrovnávací paměti vytvořené a spravované touto třídou. Získejte informace o sloupci pomocí metody GetXMLColumnData nebo získejte data sloupců pomocí řádků pomocí metody GetXMLRowData.
Příklad
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
Načte informace o typu sloupce tabulky jako řetězcová data ve formátu XML podle sloupce.
Syntaxe
HRESULT GetXMLColumnData(CSimpleStringW& strOutput) throw();
Parametry
strOutput
[ven] Odkaz na vyrovnávací paměť řetězce obsahující informace o typu sloupce, které se mají načíst. Řetězec je formátován názvy značek XML, které odpovídají názvům sloupců úložiště dat.
Návratová hodnota
Jedna ze standardních hodnot HRESULT.
Poznámky
Následující příklad ukazuje, jak jsou informace o typu sloupce formátovány v jazyce XML. type
určuje datový typ sloupce. Mějte na paměti, že datové typy jsou založené na datových typech OLE DB, nikoli na datových typech databáze, ke kterým přistupujete.
<columninfo>
<column type = I2/> ColumnName
</columninfo>
CXMLAccessor::GetXMLRowData
Načte celý obsah tabulky jako řetězcová data ve formátu XML po řádcích.
Syntaxe
HRESULT GetXMLRowData(CSimpleStringW& strOutput,
bool bAppend = false) throw();
Parametry
strOutput
[ven] Odkaz na vyrovnávací paměť obsahující data tabulky, která se mají načíst. Data jsou naformátovaná jako řetězcová data s názvy značek XML, které odpovídají názvům sloupců úložiště dat.
bAppend
[v] Logická hodnota určující, zda se má řetězec připojit na konec výstupních dat.
Návratová hodnota
Jedna ze standardních hodnot HRESULT.
Poznámky
Následující příklad ukazuje, jak jsou data řádků formátována v jazyce XML. DATA
níže představuje data řádků. Pomocí metod přesunutí přejděte na požadovaný řádek.
<row>
<column name>DATA</column name>
</row>
Viz také
Šablony příjemců OLE DB
Referenční dokumentace k šablonám příjemců OLE DB
CAccessor – třída
CDynamicAccessor – třída
CDynamicParameterAccessor – třída
CDynamicStringAccessor – třída
CDynamicStringAccessorA – třída
CDynamicStringAccessorW – třída
CManualAccessor – třída