classe de CXMLAccessor
Vous permet d'accéder à une source de données comme données de chaîne lorsque vous n'avez aucune connaissance du schéma (structure sous-jacente) du magasin de données.
class CXMLAccessor : public CDynamicStringAccessorW
Membres
Méthodes
Récupère les informations de colonne. |
|
Récupère le contenu entier de la table par lignes. |
Notes
Cependant, CXMLAccessor est différent de CDynamicStringAccessorW, car il convertit toutes les données accessibles depuis le magasin de données au format XML (référencé). Cela est particulièrement utile pour la sortie des pages Web XML-aware Les noms des balises XML correspondent aux noms des colonnes du magasin de données aussi étroitement que possible.
Utilisez les méthodes CDynamicAccessor pour récupérer des informations sur les colonnes. Vous utilisez ces informations sur les colonnes pour créer un accesseur de manière dynamique au moment de l'exécution.
Les informations sur les colonnes sont stockées dans une mémoire tampon qui est créée et managée par cette classe. Obtenez des informations sur la colonne en utilisant GetXMLColumnData ou obtenez les données des colonnes par lignes en utilisant GetXMLRowData.
Exemple
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();
}
Configuration requise
En-tête :: atldbcli.h
Voir aussi
Référence
classe de CDynamicParameterAccessor
classe de CDynamicStringAccessor
classe de CDynamicStringAccessorA
classe de CDynamicStringAccessorW