Preparare l'implementazione di un'estensione per l'elaborazione dati

Prima di implementare l'estensione per l'elaborazione dati di SQL Server Reporting Services, è necessario definire le interfacce da implementare. È possibile fornire implementazioni specifiche dell'estensione dell'intero set di interfacce oppure concentrarsi sull'implementazione di un subset, ad esempio le IDataReader interfacce e IDbCommand in cui i client interagiscono principalmente con un set di risultati come oggetto DataReader e useranno l'estensione per l'elaborazione dati SSRS come ponte tra il set di risultati e l'origine dati.

È possibile implementare le estensioni per l'elaborazione dati scegliendo tra le due modalità seguenti:

  • Le classi dell'estensione per l'elaborazione dati possono implementare le interfacce del provider di dati Microsoft .NET Framework e, facoltativamente, le interfacce dell'estensione per l'elaborazione dati estese offerte da Reporting Services.

  • Le classi dell'estensione per l'elaborazione dati possono implementare le interfacce dell'estensione per l'elaborazione dati fornite da Reporting Services e, facoltativamente, le interfacce dell'estensione per l'elaborazione dati estese.

Se l'estensione per l'elaborazione dati di Reporting Services non supporta una proprietà o un metodo specifico, implementare la proprietà o il metodo come nessuna operazione. Se un client prevede un comportamento specifico, generare un'eccezione NotSupportedException.

Nota

Un'implementazione senza operazioni di una proprietà o di un metodo si applica solo alle proprietà e ai metodi delle interfacce che si sceglie di implementare. Le interfacce facoltative che si sceglie di non implementare devono essere omesse dall'assembly di estensioni per l'elaborazione dati. Per ulteriori informazioni sul fatto che un'interfaccia sia obbligatoria o facoltativa, vedere la tabella più avanti in questa sezione.

Funzionalità di estensione necessarie

Ogni estensione per l'elaborazione dati di Reporting Services deve fornire le funzionalità seguenti:

  • Aprire una connessione a un'origine dati.

  • Analizzare una query e restituire un elenco di nomi di campo per il set di risultati.

  • Eseguire una query sull'origine dati e restituire un set di righe.

  • Passare parametri a valore singolo alla query.

  • Scorrere le righe nel set di righe e recuperare i dati.

Ogni estensione per l'elaborazione dati può essere estesa per includere le funzionalità seguenti:

  • Analizzare una query e restituire un elenco di nomi di parametri utilizzati nella query.

  • Analizzare una query e restituire l'elenco di campi in base ai quali è raggruppata la query.

  • Analizzare una query e restituire l'elenco di campi in base ai quali è ordinata la query.

  • Fornire un nome utente e una password per la connessione all'origine dati indipendenti dalla stringa di connessione.

  • Scorrere le righe nel set di righe e recuperare i metadati ausiliari relativi ai valori.

  • Aggregare i dati nel server.

Interfacce di estensione disponibili

Nella tabella seguente sono descritte le interfacce disponibili e viene indicato se l'implementazione è obbligatoria o facoltativa.

Interfaccia Descrizione Implementazione
IDbConnection Rappresenta una sessione univoca con un'origine dati. In un sistema di database client/server, la sessione potrebbe essere equivalente a una connessione di rete al server. Richiesto
IDbConnectionExtension Rappresenta più proprietà di connessione che possono essere implementate dalle estensioni per l'elaborazione dati SSRS relative alla sicurezza e all'autenticazione. Facoltativo
IDbTransaction Rappresenta una transazione locale. Richiesto
IDbTransactionExtension Rappresenta più proprietà delle transazioni che possono essere implementate dalle estensioni per l'elaborazione dati SSRS. Facoltativo
IDbCommand Rappresenta una query o un comando utilizzato per la connessione a un'origine dati. Richiesto
IDbCommandAnalysis Rappresenta altre informazioni sui comandi per l'analisi di una query e la restituzione di un elenco di nomi di parametri utilizzati nella query. Facoltativo
IDataParameter Rappresenta una coppia nome/valore o un parametro passato a un comando o a una query. Richiesto
IDataParameterCollection Rappresenta una raccolta di tutti i parametri relativi a un comando o a una query. Richiesto
IDataReader Fornisce un metodo per leggere un flusso di dati forward-only di sola lettura dall'origine dati. Richiesto
IDataReaderExtension Fornisce un metodo per leggere uno o più flussi forward-only di set di risultati, ottenuti eseguendo un comando in un'origine dati. Questa interfaccia offre un supporto maggiore per le aggregazioni di campi. Facoltativo
IExtension Fornisce la classe di base per un'estensione per l'elaborazione dati di Reporting Services. Consente inoltre a un implementatore di includere un nome localizzato per l'estensione e di passare le impostazioni di configurazione dal file di configurazione all'estensione. Richiesto

Le interfacce dell'estensione per l'elaborazione dati sono identiche a un subset delle proprietà, dei metodi e delle interfacce del provider di dati .NET Framework, quando possibile. Per ulteriori informazioni sull'implementazione di un provider di dati .NET Framework completo, vedere l'argomento relativo all'implementazione di un provider di dati nella documentazione di .NET Framework Software Development Kit (SDK).