Condividi tramite


Implementazione di una classe DataReader per un'estensione per l'elaborazione dati

L'oggetto DataReader consente a un client di recuperare un flusso di dati forward-only di sola lettura da un'origine dati. I risultati vengono restituiti quando la query viene eseguita e vengono archiviati nel buffer di rete nel client fino a quando non vengono richiesti utilizzando il metodo Read della classe DataReader. Per creare una classe DataReader, implementare IDataReader e, se si desidera, IDataReaderExtension. L'utilizzo di un oggetto DataReader consente di migliorare le prestazioni dell'applicazione permettendo di recuperare i dati non appena sono disponibili senza attendere che vengano restituiti tutti i risultati della query nonché, per impostazione predefinita, permettendo di archiviare in memoria una sola riga per volta, riducendo l'overhead di sistema.

Dopo avere creato un'istanza della classe Command, è possibile creare l'oggetto DataReader chiamando Command.ExecuteReader per recuperare le righe dall'origine dati. L'implementazione di DataReader deve offrire due funzionalità di base, ovvero l'accesso forward-only ai set di risultati ottenuti eseguendo un comando e l'accesso ai tipi di colonna, ai nomi e ai valori all'interno di ogni riga. I client utilizzano il metodo Read dell'oggetto DataReader per ottenere una riga dai risultati della query.

In Progettazione report l'oggetto DataReader viene utilizzato per recuperare un elenco di campi e le informazioni sullo schema per il set di risultati. A tale scopo, vengono implementati i metodi GetName, GetValue, GetFieldType, e GetOrdinal dell'interfaccia IDataReader.

L'interfaccia IDataReaderExtension consente di fornire informazioni di aggregazione specifiche per il set di risultati. Per un'implementazione di esempio della classe DataReader, vedere la pagina relativa agli esempi del prodotto per SQL Server Reporting Services.