Ansluta till datakällor i skriptaktiviteten

Gäller för:SQL Server SSIS Integration Runtime i Azure Data Factory

Anslutningshanterare ger tillgång till datakällor som har konfigurerats i paketet. Mer information finns i Anslutningar för Integration Services (SSIS).

Script-uppgiften kan komma åt dessa anslutningshanterare via egenskapen Connections för Dts-objektet . Varje anslutningshanterare i samlingen lagrar Connections information om hur man ansluter till den underliggande datakällan.

När du anropar AcquireConnection metoden för en anslutningshanterare ansluter anslutningshanteraren till datakällan, om den inte redan är ansluten, och returnerar lämplig anslutning eller anslutningsinformation för dig att använda i din skriptuppgiftskod.

Note

Du måste känna till vilken typ av anslutning som returneras av anslutningshanteraren innan du ringer AcquireConnection. Eftersom Script-uppgiften har Option Strict aktiverad måste du kasta anslutningen, som returneras som typ Objekt, till rätt anslutningstyp innan du kan använda den.

Du kan använda Contains metoden för samlingen Connections som återställs av egenskapen Connections för att leta efter en befintlig anslutning innan du använder anslutningen i din kod.

Important

Du kan inte anropa AcquireConnection-metoden för anslutningshanterare som returnerar ohanterade objekt, såsom OLE DB-anslutningshanteraren och Excel-anslutningshanteraren, i den hanterade koden för en Script-uppgift. Du kan dock läsa egenskapen ConnectionString i dessa anslutningshanterare och ansluta direkt till datakällan i din kod genom att använda reťazec pripojenia med en OledbConnection från System.Data.OleDb-namnrymden.

Om du måste anropa AcquireConnection-metoden i en anslutningshanterare som returnerar ett ohanterat objekt, använd en ADO.NET-anslutningshanterare. När du konfigurerar ADONET connection manager att använda en OLE DB-leverantör, ansluter den via .NET Framework Data Provider för OLE DB. I detta fall returnerar metoden AcquireConnection en System.Data.OleDb.OleDbConnection istället för ett ohanterat objekt. För att konfigurera en ADO.NET connection manager för användning med en Excel datakälla, välj Microsoft OLE DB Provider för Jet, ange en Excel-fil och ange Excel 8.0 (för Excel 97 och senare) som värdet för Utökade egenskaper på sidan Alla i Connection Manager-dialogrutan.

Exempel på anslutningar

Följande exempel visar hur man får tillgång till anslutningshanterare från Script-uppgiften. Exemplet förutsätter att du har skapat och konfigurerat en ADO.NET-anslutningshanterare som heter Test ADO.NET Connection och en Flat File connection manager som heter Test Flat File Connection. Observera att ADO.NET-anslutningshanteraren returnerar ett SqlConnection-objekt som du kan använda omedelbart för att ansluta till datakällan. Flat File connection manager, å andra sidan, returnerar endast en sträng som innehåller sökväg och filnamn. Du måste använda metoder från System.IO namnrymden för att öppna och arbeta med den platta filen.

    Public Sub Main()

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

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

        Dts.TaskResult = ScriptResults.Success

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

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

            Dts.TaskResult = (int)ScriptResults.Success;
		}