Script Görevinde Veri Kaynaklarına Bağlanma

Şunlar için geçerlidir:SQL Server Azure Data Factory'de SSIS Tümleştirme Çalışma Zamanı

Bağlantı yöneticileri, pakette yapılandırılmış veri kaynaklarına erişim sağlar. Daha fazla bilgi için bkz. Integration Services (SSIS) Bağlantıları.

Script görevi, bu bağlantı yöneticilerine DtsConnections nesnesinin özelliği üzerinden erişebilir. Koleksiyondaki her bağlantı yöneticisi, Connections temel veri kaynağına nasıl bağlanacağına dair bilgileri saklar.

Bir bağlantı yöneticisinin yöntemini AcquireConnection çağırdığınızda, bağlantı yöneticisi zaten bağlanmamışsa veri kaynağına bağlanır ve Script görev kodunda kullanmanız için uygun bağlantı veya bağlantı bilgilerini döndürür.

Note

AcquireConnection'u aramadan önce bağlantı yöneticisinin geri dönen bağlantı türünü bilmelisiniz. Script görevinde Option Strict etkin olduğu için, bağlantıyı kullanabilmeniz için Object türü olarak geri dönen bağlantıyı uygun bağlantı türüne göndermeniz gerekir.

Contains Özelliğin geri dönen koleksiyon Connections yöntemini Connections kullanarak mevcut bağlantıyı kodunuzda kullanmadan önce arayabilirsiniz.

Important

Yönetilmeyen nesneleri döndüren bağlantı yöneticilerinin AcquireConnection metodunu, örneğin OLE DB bağlantı yöneticisi ve Excel bağlantı yöneticisi, bir Script görevinin yönetilen kodunda çağıramazsınız. Ancak, bu bağlantı yöneticilerinin ConnectionString özelliğini okuyabilir ve System.Data.OleDb isim alanından bir OledbConnection ile bağlantı dizesi'i kullanarak doğrudan kodunuzdaki veri kaynağına bağlanabilirsiniz.

Yönetilmeyen bir nesne döndüren bir bağlantı yöneticisinin AcquireConnection yöntemini çağırmanız gerekiyorsa, bir ADO.NET bağlantı yöneticisi kullanın. ADO.NET bağlantı yöneticisini bir OLE DB sağlayıcısı kullanacak şekilde yapılandırdığınızda, .NET Framework Veri Sağlayıcısı for OLE DB kullanılarak bağlanır. Bu durumda, AcquireConnection yöntemi yönetilmeyen bir nesne yerine System.Data.OleDb.OleDbConnection döner. Bir ADO.NET connection manager Excel veri kaynağı ile kullanılacak şekilde yapılandırmak için, Jet için Microsoft OLE DB Sağlayıcısı'nı seçin, Excel dosyası belirtin ve Excel 8.0 (97 ve sonrası Excel için) All sayfasındaGenişletilmiş Özellikler değerini girin.Bağlantı Yöneticisi iletişim kutusu.

Bağlantı Örneği

Aşağıdaki örnek, Script görevi içinden bağlantı yöneticilerine nasıl erişileceğini gösterir. Örnek, Test ADO.NET Bağlantısı adlı bir ADO.NET bağlantı yöneticisi ve Test Flat File Connection adlı bir Flat File bağlantı yöneticisi oluşturup yapılandırdığınızı varsayar. ADO.NET bağlantı yöneticisinin, veri kaynağına hemen bağlanmak için kullanabileceğiniz bir SqlConnection nesnesi döndürdüğünü unutmayın. Flat File bağlantı yöneticisi ise yalnızca yol ve dosya adını içeren bir diziyi döndürür. Düz dosyayı açmak ve onunla çalışmak için System.IO namespace'den metodlar kullanmalısınız.

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