Freigeben über


Herstellen einer Verbindung zu Datenquellen im Skripttask

Gilt für: SQL Server SSIS Integration Runtime in Azure Data Factory

Verbindungs-Manager bieten Zugriff auf Datenquellen, die im Paket konfiguriert wurden. Weitere Informationen finden Sie unter Integration Services-Verbindungen (SSIS).

Der Skripttask kann auf diese Verbindungs-Manager über die Connections-Eigenschaft des Dts-Objekts zugreifen. Jeder Verbindungs-Manager in der Connections-Auflistung speichert Informationen darüber, wie eine Verbindung mit der zugrunde liegenden Datenquelle hergestellt werden kann.

Wenn Sie die AcquireConnection-Methode eines Verbindungs-Managers aufrufen, stellt der Verbindungs-Manager eine Verbindung zur Datenquelle her (falls diese nicht bereits besteht), und gibt die entsprechenden Verbindungsinformationen zur Verwendung im Skripttaskcode zurück.

Hinweis

Der Verbindungstyp, der vom Verbindungs-Manager zurückgegeben wird, muss bekannt sein, bevor Sie AcquireConnection aufrufen. Da für den Skripttask Option Strict aktiviert ist, müssen Sie die Verbindung, die als Object-Typ zurückgegeben wird, vor ihrer Verwendung in den richtigen Verbindungstyp umwandeln.

Sie können die Contains-Methode der Connections-Auflistung verwenden, die von der Connections-Eigenschaft zurückgegeben wird, um nach einer vorhandenen Verbindung zu suchen, bevor Sie diese Verbindung im Code verwenden.

Wichtig

Sie können die AcquireConnection-Methode von Verbindungs-Managern, die nicht verwaltete Objekte zurückgeben (z.B. der OLE DB-Verbindungs-Manager und der Excel-Verbindungs-Manager) nicht im verwalteten Code eines Skripttasks aufrufen. Sie können jedoch die ConnectionString-Eigenschaft dieser Verbindungs-Manager lesen und mithilfe der Verbindungszeichenfolge einer OledbConnection aus dem System.Data.OleDb-Namespace direkt im Code eine Verbindung mit der Datenquelle herstellen.

Wenn Sie die AcquireConnection-Methode eines Verbindungs-Managers aufrufen müssen, der nicht verwaltete Objekte zurückgibt, verwenden Sie einen ADO.NET-Verbindungs-Manager. Wenn Sie den ADO.NET-Verbindungs-Manager zur Verwendung eines OLE DB-Anbieters konfigurieren, stellt er über den .NET Framework-Datenanbieter für OLE DB eine Verbindung her. In diesem Fall gibt die AcquireConnection-Methode ein System.Data.OleDb.OleDbConnection-Objekt anstelle eines nicht verwalteten Objekts zurück. Zur Konfiguration eines ADO.NET-Verbindungs-Managers zur Verwendung mit einer Excel-Datenquelle wählen Sie den Microsoft OLE DB-Anbieter für Jet aus, geben eine Excel-Datei an und geben dann Excel 8.0 (für Excel 97 und höher) als Wert für Erweiterte Eigenschaften auf der Seite Alle des Dialogfelds Verbindungs-Manager ein.

Verbindungsbeispiel

Im folgenden Beispiel wird veranschaulicht, wie Verbindungs-Manager innerhalb des Skripttasks aufgerufen werden können. In diesem Beispiel wird davon ausgegangen, dass Sie einen ADO.NET-Verbindungs-Manager namens Test ADO.NET Connection und einen Verbindungs-Manager für Flatfiles namens Test Flat File Connection erstellt und konfiguriert haben. Beachten Sie, dass der ADO.NET-Verbindungs-Manager ein SqlConnection-Objekt zurückgibt, das Sie sofort zur Verbindung mit der Datenquelle verwenden können. Der Verbindungs-Manager für Flatfiles gibt im Gegensatz dazu nur eine Zeichenfolge mit Pfad und Dateinamen zurück. Sie müssen Methoden aus dem System.IO-Namespace verwenden, um die Flatfile zu öffnen und mit ihr zu arbeiten.

    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;
		}

Siehe auch

Integration Services-Verbindungen (SSIS)
Erstellen von Verbindungs-Managern