Classe CXMLAccessor
Consente di accedere alle origini dati come dati stringa quando non si ha alcuna conoscenza dello schema dell'archivio dati (struttura sottostante).
Sintassi
class CXMLAccessor : public CDynamicStringAccessorW
Requisiti
Intestazione: atldbcli.h
Membri
Metodi
Nome | Descrizione |
---|---|
GetXMLColumnData | Recupera le informazioni sulla colonna. |
GetXMLRowData | Recupera l'intero contenuto di una tabella in base alle righe. |
Osservazioni:
Tuttavia, CXMLAccessor
differisce dal CDynamicStringAccessorW
fatto che converte tutti i dati a cui si accede dall'archivio dati come dati in formato XML (con tag). Ciò è particolarmente utile per l'output in pagine Web con riconoscimento XML. I nomi dei tag XML corrispondono ai nomi delle colonne dell'archivio dati il più possibile.
Utilizzare CDynamicAccessor
i metodi per ottenere informazioni sulla colonna. Queste informazioni sulla colonna vengono usate per creare una funzione di accesso in modo dinamico in fase di esecuzione.
Le informazioni sulla colonna vengono archiviate in un buffer creato e gestito da questa classe. Ottenere informazioni sulla colonna usando GetXMLColumnData o ottenere i dati delle colonne tramite GetXMLRowData.
Esempio
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
Recupera le informazioni sul tipo di colonna di una tabella come dati stringa in formato XML, in base alla colonna.
Sintassi
HRESULT GetXMLColumnData(CSimpleStringW& strOutput) throw();
Parametri
strOutput
[out] Riferimento a un buffer stringa contenente le informazioni sul tipo di colonna da recuperare. La stringa viene formattata con nomi di tag XML corrispondenti ai nomi delle colonne dell'archivio dati.
Valore restituito
Uno dei valori HRESULT standard.
Osservazioni:
Di seguito viene illustrato come le informazioni sul tipo di colonna vengono formattate in XML. type
specifica il tipo di dati della colonna. Si noti che i tipi di dati sono basati sui tipi di dati OLE DB, non quelli del database a cui si accede.
<columninfo>
<column type = I2/> ColumnName
</columninfo>
CXMLAccessor::GetXMLRowData
Recupera l'intero contenuto di una tabella come dati stringa in formato XML, in base alla riga.
Sintassi
HRESULT GetXMLRowData(CSimpleStringW& strOutput,
bool bAppend = false) throw();
Parametri
strOutput
[out] Riferimento a un buffer contenente i dati della tabella da recuperare. I dati vengono formattati come dati stringa con nomi di tag XML che corrispondono ai nomi delle colonne dell'archivio dati.
bAppend
[in] Valore booleano che specifica se aggiungere una stringa alla fine dei dati di output.
Valore restituito
Uno dei valori HRESULT standard.
Osservazioni:
Di seguito viene illustrato come i dati di riga vengono formattati in XML. DATA
di seguito rappresenta i dati di riga. Utilizzare i metodi di spostamento per passare alla riga desiderata.
<row>
<column name>DATA</column name>
</row>
Vedi anche
Modelli di consumer OLE DB
Riferimenti ai modelli consumer OLE DB
Classe CAccessor
Classe CDynamicAccessor
Classe CDynamicParameterAccessor
Classe CDynamicStringAccessor
Classe CDynamicStringAccessorA
Classe CDynamicStringAccessorW
Classe CManualAccessor