Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Al recuperar datos analíticos, el AdomdDataReader objeto proporciona un buen equilibrio entre sobrecarga e interactividad. El AdomdDataReader objeto recupera un flujo de datos de unidireccional, de solo lectura y aplanado de un origen de datos analítico. Este flujo de datos sin búfer permite que la lógica de procedimientos procese de forma eficaz los resultados de un origen de datos analíticos secuencialmente. Esto hace que el AdomdDataReader sea una buena opción al recuperar grandes cantidades de datos para fines de visualización, ya que los datos no se almacenan en caché en la memoria.
También puede aumentar el AdomdDataReader rendimiento de la aplicación recuperando datos tan pronto como esté disponible, en lugar de esperar a que se devuelvan los resultados completos de la consulta. AdomdDataReader También reduce la sobrecarga del sistema porque, de forma predeterminada, este lector almacena solo una fila a la vez en la memoria.
La compensación del rendimiento optimizado es que el AdomdDataReader objeto proporciona menos información sobre los datos recuperados que otros métodos de recuperación de datos. El AdomdDataReader objeto no admite un modelo de objetos grande para representar datos o metadatos, ni este modelo de objetos permite características analíticas más complejas como la escritura diferida de celdas. Sin embargo, el AdomdDataReader objeto proporciona un conjunto de métodos fuertemente tipados para recuperar datos del conjunto de celdas y un método para recuperar metadatos del conjunto de celdas en un formato tabular. Además, AdomdDataReader implementa la interfaz IDbDataReader para admitir el enlace de datos y para recuperar datos mediante el método SelectCommand , desde el espacio de nombres System.Data de la biblioteca de clases de Microsoft .NET Framework.
Recuperar datos de AdomdDataReader
Para usar el AdomdDataReader objeto para recuperar datos, siga estos pasos:
Cree una nueva instancia del objeto .
Para crear una nueva instancia de AdomdDataReader, llame al método Execute o ExecuteReader del objeto AdomdCommand.
Recuperar datos.
A medida que el comando ejecuta la consulta, ADOMD.NET devuelve los resultados en el formato Resultset , un formato tabular como se describe en la especificación XML for Analysis, para aplanar los datos del AdomdDataReader objeto. Un formato tabular es inusual al consultar datos analíticos teniendo en cuenta la dimensionalidad variable en estos datos.
ADOMD.NET almacena estos resultados tabulares en el búfer de red en el cliente hasta que los solicite mediante uno de los métodos siguientes:
Llame al Read método del AdomdDataReader objeto .
El Read método obtiene una fila de los resultados de la consulta. A continuación, puede pasar el nombre o la referencia ordinal de la columna a la propiedad Item para tener acceso a cada columna de la fila devuelta. Por ejemplo, la primera columna de la fila actual se denomina ColumnName. Ya sea
reader[0].ToString()oreader["ColumnName"].ToString(), devolverá el contenido de la primera columna de la fila actual.Llame a uno de los métodos de acceso tipados.
AdomdDataReader proporciona una serie de métodos de acceso tipados, que permiten acceder a los valores de columna en sus tipos de datos nativos. Cuando conoce el tipo de datos subyacente de un valor de columna, un método de acceso tipado reduce la cantidad de conversión de tipo necesaria al obtener el valor de la columna y, por tanto, proporciona el máximo rendimiento.
Algunos de los métodos de descriptor de acceso con tipo disponibles son GetDateTime, GetDouble, y GetInt32. Para obtener una lista completa de los métodos de descriptor de acceso con tipo, consulte AdomdDataReader.
Cierre el lector.
Siempre debe llamar al método Close cuando haya terminado de usar el objeto AdomdDataReader. Mientras una instancia de un AdomdDataReader objeto está abierta, el AdomdConnection se utiliza exclusivamente por esa AdomdDataReader. No podrá ejecutar ningún comando en la instancia de AdomdConnection, incluida la creación de otro AdomdDataReader o de System.Xml.XmlReader, hasta que cierre el AdomdDataReader original.
Ejemplo de recuperación de datos de AdomdDataReader
El ejemplo de código siguiente recorre en iteración un AdomdDataReader objeto y devuelve los dos primeros valores, como cadenas, de cada fila.
If Reader.HasRows Then
Do While objReader.Read()
Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _
objReader.GetString(0), objReader.GetString(1))
Loop
Else
Console.WriteLine("No rows returned.")
End If
objReader.Close()
if (objReader.HasRows)
while (objReader.Read())
Console.WriteLine("\t{0}\t{1}", _
objReader.GetString(0), objReader.GetString(1));
else
Console.WriteLine("No rows returned.");
objReader.Close();
Recuperar metadatos de AdomdDataReader
Mientras una instancia de un AdomdDataReader objeto está abierta, puede recuperar información de esquema o metadatos sobre el conjunto de registros actual mediante el GetSchemaTable método . GetSchemaTable devuelve un objeto DataTable que se rellena con la información de esquema del conjunto de registros actual. DataTable contendrá una fila para cada columna del conjunto de registros. Cada columna de la fila de la tabla de esquema se asigna a una propiedad de la columna devuelta en el conjunto de celdas, donde ColumnName es el nombre de la propiedad y el valor de la columna es el valor de la propiedad .
Ejemplo de recuperación de metadatos de AdomdDataReader
En el ejemplo de código siguiente se escribe la información de esquema de un AdomdDataReader objeto .
Dim schemaTable As DataTable = objReader.GetSchemaTable()
Dim objRow As DataRow
Dim objColumn As DataColumn
For Each objRow In schemaTable.Rows
For Each objColumn In schemaTable.Columns
Console.WriteLine(objColumn.ColumnName & " = " & objRow(objColumn).ToString())
Next
Console.WriteLine()
Next
DataTable schemaTable = objReader.GetSchemaTable();
foreach (DataRow objRow in schemaTable.Rows)
{
foreach (DataColumn objColumn in schemaTable.Columns)
Console.WriteLine(objColumn.ColumnName + " = " + objRow[objColumn]);
Console.WriteLine();
}
Recuperación de varios conjuntos de resultados
La minería de datos admite el concepto de tablas anidadas, que ADOMD.NET expone como conjuntos de filas anidados. Para recuperar el conjunto de filas anidado asociado a cada fila, llamar al método GetDataReader.