Compartir a través de


CXMLAccessor (Clase)

Permite acceder a orígenes de datos como datos de cadena cuando no tiene conocimiento del esquema del almacén de datos (estructura subyacente).

Sintaxis

class CXMLAccessor : public CDynamicStringAccessorW

Requisitos

Encabezado: atldbcli.h

Miembros

Métodos

Nombre Descripción
GetXMLColumnData Recupera la información de columna.
GetXMLRowData Recupera todo el contenido de una tabla por filas.

Comentarios

Sin embargo, CXMLAccessor difiere de CDynamicStringAccessorW en que convierte todos los datos a los que se accede desde el almacén de datos a datos con formato XML (etiquetados). Esto es especialmente útil para la salida a páginas web compatibles con XML. Los nombres de las etiquetas XML coincidirán al máximo con los nombres de las columnas del almacén de datos.

Use métodos CDynamicAccessor para obtener información de columna. Esta información de columna se usa para crear un descriptor de acceso dinámicamente en tiempo de ejecución.

La información de columna se almacena en un búfer creado y administrado por esta clase. Obtenga información de columna mediante GetXMLColumnData u obtenga datos de columna por filas mediante GetXMLRowData.

Ejemplo

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 la información de tipo de columna de una tabla como datos de cadena con formato XML, por columna.

Sintaxis

HRESULT GetXMLColumnData(CSimpleStringW& strOutput) throw();

Parámetros

strOutput
[out] Referencia a un búfer de cadenas que contiene la información de tipo de columna que se va a recuperar. La cadena tiene formato con nombres de etiqueta XML que coinciden con los nombres de columna del almacén de datos.

Valor devuelto

Uno de los valores HRESULT estándar.

Comentarios

A continuación se muestra cómo se da formato a la información de tipo de columna en XML. type especifica el tipo de datos de la columna. Tenga en cuenta que los tipos de datos se basan en tipos de datos OLE DB, no en los de la base de datos a la que se accede.

<columninfo>

<column type = I2/> ColumnName

</columninfo>

CXMLAccessor::GetXMLRowData

Recupera todo el contenido de una tabla como datos de cadena con formato XML, por fila.

Sintaxis

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

Parámetros

strOutput
[out] Referencia a un búfer que contiene los datos de tabla que se van a recuperar. Los datos tienen el formato de datos de cadena con nombres de etiqueta XML que coinciden con los nombres de columna del almacén de datos.

bAppend
[in] Valor booleano que especifica si se va a anexar una cadena al final de los datos de salida.

Valor devuelto

Uno de los valores HRESULT estándar.

Comentarios

A continuación se muestra cómo se da formato a los datos de fila en XML. DATA a continuación representa los datos de fila. Use métodos de traslado para desplazarse a la fila deseada.

<row>

<column name>DATA</column name>

</row>

Consulte también

Plantillas de consumidor OLE DB
Referencia de plantillas de consumidor OLE DB
CAccessor (Clase)
CDynamicAccessor (Clase)
CDynamicParameterAccessor (Clase)
CDynamicStringAccessor (Clase)
CDynamicStringAccessorA (Clase)
CDynamicStringAccessorW (Clase)
CManualAccessor (Clase)