Implementare una classe Connessione ion per un'estensione per l'elaborazione dati

L'oggetto Connection rappresenta una connessione di database o una risorsa simile ed è il punto di partenza per gli utenti di un'estensione per l'elaborazione dati di SQL Server Reporting Services. Questo oggetto rappresenta le connessioni ai server di database, sebbene qualsiasi entità con un comportamento simile possa essere esposta come oggetto Connection.

Per implementare un oggetto Connection, creare una classe che implementa IDbConnection e, facoltativamente, IDbConnectionExtension.

Nell'implementazione è necessario assicurarsi che prima dell'esecuzione dei comandi venga creata e aperta una connessione. Assicurarsi che l'implementazione richieda ai client di aprire e chiudere le connessioni in modo esplicito, anziché lasciare che l'implementazione apra e chiuda le connessioni in modo implicito per il client. Dopo aver stabilito la connessione, eseguire i controlli di sicurezza. La richiesta di una connessione esistente per le altre classi nell'estensione per l'elaborazione dati SSRS garantisce che i controlli di sicurezza vengano sempre eseguiti quando si lavora con l'origine dati.

Le proprietà della connessione desiderata vengono rappresentate come stringa di connessione. Le estensioni per l'elaborazione dati SSRS devono supportare la ConnectionString proprietà usando il sistema di coppie nome/valore noto definito da OLE DB.

Nota

Per ottenere gli oggetti Connection è spesso necessario un impiego elevato delle risorse, pertanto è consigliabile considerare la creazione di pool di connessioni o l'applicazione di altre tecniche che prevedano un minor sovraccarico delle risorse.

IDbConnection eredita da IExtension. È necessario implementare l'interfaccia IExtension come parte dell'implementazione della classe Connection. L'interfaccia IExtension consente a una classe di implementare un nome di estensione localizzato e di elaborare le informazioni di configurazione specifiche dell'estensione archiviate nel file di configurazione di Reporting Services.

L'oggetto Connection contiene la proprietà LocalizedName tramite l'implementazione di IExtension. Le estensioni per l'elaborazione dati di Reporting Services devono supportare la LocalizedName proprietà . Il supporto consente agli utenti di individuare un nome familiare localizzato per l'estensione in un'interfaccia utente, ad esempio Gestione report.

IExtension consente anche all'oggetto Connection di recuperare ed elaborare i dati di configurazione personalizzati archiviati nel file RSReportServer.config. Per ulteriori informazioni sull'elaborazione dei dati di configurazione personalizzati, vedere il metodo SetConfiguration.

La classe che implementa IExtension non viene scaricata dalla memoria quando il resto delle classi di estensioni per l'elaborazione dati viene scaricato. Per questo motivo, è possibile usare la classe Extension per archiviare le informazioni sullo stato tra connessioni o per archiviare i dati che possono essere memorizzati nella cache in memoria. La classe Extension rimane in memoria fino a quando il server di report è in esecuzione.

È possibile estendere la classe Connection per includere il supporto per le credenziali in Reporting Services implementando IDbConnectionExtension. Quando si implementano le proprietà IntegratedSecurity, UserName e Password dell'interfaccia IDbConnectionExtension, si abilitano la casella di controllo Sicurezza integrata e le caselle di testo Nome utente e Password della finestra di dialogo Origine dati di Progettazione report. In questo modo, è possibile consentire a Progettazione report di archiviare e recuperare le credenziali per le origini dati che supportano l'autenticazione. Le credenziali vengono archiviate in modo protetto e utilizzate quando viene eseguito il rendering dei report in modalità di anteprima.

Nota

L'implementazione di IDbConnectionExtension richiede in modo implicito che vengano implementati i membri delle interfacce IDbConnection e IExtension.

Per un'implementazione della classe di Connessione di esempio, vedere Esempi di Reporting Services in CodePlex (SQL Server Reporting Services SSRS).