Partager via


CXMLAccessor, classe

Vous permet d’accéder aux sources de données en tant que données de chaîne lorsque vous n’avez aucune connaissance du schéma du magasin de données (structure sous-jacente).

Syntaxe

class CXMLAccessor : public CDynamicStringAccessorW

Spécifications

En-tête : atldbcli.h

Membres

Méthodes

Nom Description
GetXMLColumnData Récupère les informations de colonne.
GetXMLRowData Récupère l’intégralité du contenu d’une table par lignes.

Notes

Toutefois, CXMLAccessor elle diffère de CDynamicStringAccessorW celle-ci pour convertir toutes les données accessibles à partir du magasin de données en tant que données au format XML (étiquetées). Cela est particulièrement utile pour la sortie vers des pages Web prenant en charge XML. Les noms des balises XML correspondent aussi étroitement que possible aux noms de colonnes du magasin de données.

Utilisez des CDynamicAccessor méthodes pour obtenir des informations sur les colonnes. Vous utilisez ces informations de colonne pour créer un accesseur dynamiquement au moment de l’exécution.

Les informations de colonne sont stockées dans une mémoire tampon créée et gérée par cette classe. Obtenez des informations de colonne à l’aide de GetXMLColumnData ou obtenez des données de colonne par lignes à l’aide de 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();
}

CXMLAccessor::GetXMLColumnData

Récupère les informations de type de colonne d’une table sous forme de données de chaîne au format XML, par colonne.

Syntaxe

HRESULT GetXMLColumnData(CSimpleStringW& strOutput) throw();

Paramètres

strOutput
[out] Référence à une mémoire tampon de chaîne contenant les informations de type de colonne à récupérer. La chaîne est mise en forme avec des noms de balises XML qui correspondent aux noms de colonnes du magasin de données.

Valeur de retour

Une des valeurs HRESULT standard.

Notes

L’exemple suivant montre comment les informations de type de colonne sont mises en forme en XML. type spécifie le type de données de la colonne. Notez que les types de données sont basés sur des types de données OLE DB, et non sur ceux de la base de données en cours d’accès.

<columninfo>

<column type = I2/> ColumnName

</columninfo>

CXMLAccessor::GetXMLRowData

Récupère l’intégralité du contenu d’une table sous forme de données de chaîne au format XML, par ligne.

Syntaxe

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

Paramètres

strOutput
[out] Référence à une mémoire tampon contenant les données de table à récupérer. Les données sont mises en forme sous forme de données de chaîne avec des noms de balise XML qui correspondent aux noms de colonnes du magasin de données.

bAppend
[in] Valeur booléenne spécifiant s’il faut ajouter une chaîne à la fin des données de sortie.

Valeur de retour

Une des valeurs HRESULT standard.

Notes

L’exemple suivant montre comment les données de ligne sont mises en forme en XML. DATA ci-dessous représente les données de ligne. Utilisez les méthodes de déplacement pour passer à la ligne souhaitée.

<row>

<column name>DATA</column name>

</row>

Voir aussi

Modèles du consommateur OLE DB
Référence des modèles du consommateur OLE DB
CAccessor, classe
CDynamicAccessor, classe
CDynamicParameterAccessor, classe
CDynamicStringAccessor, classe
CDynamicStringAccessorA, classe
CDynamicStringAccessorW, classe
CManualAccessor, classe