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