Partager via


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

GetXMLColumnData

Récupère les informations de colonne.

GetXMLRowData

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 Attributs

classe de CDynamicAccessor

classe de CDynamicParameterAccessor

classe de CDynamicStringAccessor

classe de CDynamicStringAccessorA

classe de CDynamicStringAccessorW

Classe CManualAccessor

Concepts

Modèles du consommateur OLE DB (C++)

Référence des modèles du consommateur OLE DB