Connessione a origini dati nell'attività ScriptConnecting to Data Sources in the Script Task

Le gestioni connessioni forniscono accesso a origini dati configurate nel pacchetto.Connection managers provide access to data sources that have been configured in the package. Per altre informazioni, vedere Connessioni in Integration Services (SSIS).For more information, see Integration Services (SSIS) Connections.

L'attività Script può accedere a queste gestioni connessioni tramite il Connections proprietà del Dts oggetto.The Script task can access these connection managers through the Connections property of the Dts object. Ogni gestione connessione nella raccolta Connections archivia informazioni su come eseguire la connessione all'origine dati sottostante.Each connection manager in the Connections collection stores information about how to connect to the underlying data source.

Quando si chiama il metodo AcquireConnection di una gestione connessione, la gestione connessione si connette all'origine dati, se non è già connessa, e restituisce la connessione o le informazioni di connessione appropriate da utilizzare nel codice dell'attività Script.When you call the AcquireConnection method of a connection manager, the connection manager connects to the data source, if it is not already connected, and returns the appropriate connection or connection information for you to use in your Script task code.

Nota

È necessario conoscere il tipo di connessione restituito dalla gestione connessione prima di chiamare AcquireConnection.You must know the type of connection returned by the connection manager before calling AcquireConnection. Poiché l'attività Script deve Option Strict abilitato, è necessario eseguire il cast della connessione, che viene restituita come tipo oggetto, per il tipo di connessione appropriato prima che sia possibile utilizzarlo.Because the Script task has Option Strict enabled, you must cast the connection, which is returned as type Object, to the appropriate connection type before you can use it.

È possibile utilizzare il metodo Contains della raccolta Connections restituita dalla proprietà Connections per cercare una connessione esistente prima di utilizzare la connessione nel codice.You can use the Contains method of the Connections collection returned by the Connections property to look for an existing connection before using the connection in your code.

Importante

È possibile chiamare il metodo AcquireConnection delle gestioni connessioni che restituiscono oggetti non gestiti, ad esempio la gestione connessione OLE DB e la gestione connessione Excel, nel codice gestito di un'attività Script.You cannot call the AcquireConnection method of connection managers that return unmanaged objects, such as the OLE DB connection manager and the Excel connection manager, in the managed code of a Script task. Tuttavia, è possibile leggere la proprietà ConnectionString di queste gestioni connessioni e connettersi all'origine dati direttamente nel codice utilizzando la stringa di connessione con un OledbConnection dal OleDb dello spazio dei nomi.However, you can read the ConnectionString property of these connection managers, and connect to the data source directly in your code by using the connection string with an OledbConnection from the System.Data.OleDb namespace.

Se è necessario chiamare il metodo AcquireConnection di una connessione di gestione che restituisce un oggetto non gestito, utilizzare un ADO.NETADO.NET gestione connessione.If you must call the AcquireConnection method of a connection manager that returns an unmanaged object, use an ADO.NETADO.NET connection manager. Quando si configura la gestione connessione ADO.NETADO.NET per l'utilizzo di un provider OLE DB, la connessione viene eseguita tramite il provider di dati .NET Framework.NET Framework per OLE DB.When you configure the ADO.NETADO.NET connection manager to use an OLE DB provider, it connects by using the .NET Framework.NET Framework Data Provider for OLE DB. In questo caso, il metodo AcquireConnection restituisce un OleDbConnection anziché un oggetto non gestito.In this case, the AcquireConnection method returns a System.Data.OleDb.OleDbConnection instead of an unmanaged object. Per configurare un ADO.NETADO.NET gestione connessione per l'utilizzo con un'origine di dati di Excel, seleziona il MicrosoftMicrosoft il Provider OLE DB per Jet, specificare un file di Excel e immettere Excel 8.0 (per Excel 97 e versioni successive) come valore di proprietà estese sul tutti pagina del Connection Manager la finestra di dialogo.To configure an ADO.NETADO.NET connection manager for use with an Excel data source, select the MicrosoftMicrosoft OLE DB Provider for Jet, specify an Excel file, and enter Excel 8.0 (for Excel 97 and later) as the value of Extended Properties on the All page of the Connection Manager dialog box.

Esempio di connessioniConnections Example

Nell'esempio seguente viene illustrato come accedere alle gestioni connessioni dall'attività Script.The following example demonstrates how to access connection managers from within the Script task. Nell'esempio si presuppone di avere creato e configurato un ADO.NETADO.NET gestione connessione denominata Test ADO.NET Connection e una gestione connessione File Flat denominata Test Flat File Connection.The sample assumes that you have created and configured an ADO.NETADO.NET connection manager named Test ADO.NET Connection and a Flat File connection manager named Test Flat File Connection. Si noti che il ADO.NETADO.NET gestione connessione restituisce un SqlConnection oggetto che è possibile utilizzare immediatamente per connettersi all'origine dati.Note that the ADO.NETADO.NET connection manager returns a SqlConnection object that you can use immediately to connect to the data source. La gestione connessione file flat, al contrario, restituisce solo una stringa che contiene il percorso e il nome di file.The Flat File connection manager, on the other hand, returns only a string that contains the path and file name. È necessario utilizzare i metodi di System.IO spazio dei nomi da aprire e utilizzare il file flat.You must use methods from the System.IO namespace to open and work with the flat file.

Public Sub Main()  

    Dim myADONETConnection As SqlClient.SqlConnection  
    myADONETConnection = _  
        DirectCast(Dts.Connections("Test ADO.NET Connection").AcquireConnection(Dts.Transaction), _  
        SqlClient.SqlConnection)  
    MsgBox(myADONETConnection.ConnectionString, _  
        MsgBoxStyle.Information, "ADO.NET Connection")  

    Dim myFlatFileConnection As String  
    myFlatFileConnection = _  
        DirectCast(Dts.Connections("Test Flat File Connection").AcquireConnection(Dts.Transaction), _  
        String)  
    MsgBox(myFlatFileConnection, MsgBoxStyle.Information, "Flat File Connection")  

    Dts.TaskResult = ScriptResults.Success  

End Sub  
using System;  
using System.Data.SqlClient;  
using Microsoft.SqlServer.Dts.Runtime;  
using System.Windows.Forms;  

public class ScriptMain  
{  

        public void Main()  
        {  
            SqlConnection myADONETConnection = new SqlConnection();  
            myADONETConnection = (SqlConnection)(Dts.Connections["Test ADO.NET Connection"].AcquireConnection(Dts.Transaction)as SqlConnection);  
            MessageBox.Show(myADONETConnection.ConnectionString, "ADO.NET Connection");  

            string myFlatFileConnection;  
            myFlatFileConnection = (string)(Dts.Connections["Test Flat File Connection"].AcquireConnection(Dts.Transaction) as String);  
            MessageBox.Show(myFlatFileConnection, "Flat File Connection");  

            Dts.TaskResult = (int)ScriptResults.Success;  

        }  

}  

Vedere ancheSee Also

Integration Services ( SSIS ) Connessioni Integration Services (SSIS) Connections
Creare gestioni connessioniCreate Connection Managers