Bagikan melalui


Menyambungkan ke Sumber Data dalam Tugas Kustom

Berlaku untuk: Integration Runtime SSIS SQL Server di Azure Data Factory

Tugas tersambung ke sumber data eksternal untuk mengambil atau menyimpan data dengan menggunakan pengelola koneksi. Pada waktu desain, manajer koneksi mewakili koneksi logis, dan menjelaskan informasi utama seperti nama server dan properti autentikasi apa pun. Pada durasi, tugas memanggil AcquireConnection metode pengelola koneksi untuk membuat koneksi fisik ke sumber data.

Karena paket dapat berisi banyak tugas, yang masing-masing mungkin memiliki koneksi ke sumber data yang berbeda, paket melacak semua manajer koneksi dalam koleksi, Connections koleksi. Tugas menggunakan koleksi dalam paket mereka untuk menemukan manajer koneksi yang akan mereka gunakan selama validasi dan eksekusi. Koleksi Connections adalah parameter pertama untuk Validate metode dan Execute .

Anda dapat mencegah tugas menggunakan pengelola koneksi yang salah dengan menampilkan ConnectionManager objek dari koleksi kepada pengguna, dengan menggunakan kotak dialog atau daftar drop-down di antarmuka pengguna grafis. Ini memberi pengguna cara untuk memilih dari antara hanya ConnectionManager objek dengan jenis yang sesuai yang terkandung dalam paket.

Tugas memanggil AcquireConnection metode untuk membuat koneksi fisik ke sumber data. Metode mengembalikan objek koneksi yang mendasar yang kemudian dapat digunakan oleh tugas. Karena manajer koneksi mengisolasi detail implementasi objek koneksi yang mendasar dari tugas, tugas hanya perlu memanggil AcquireConnection metode untuk membuat koneksi, dan tidak perlu khawatir dengan aspek lain dari koneksi.

Contoh

Kode sampel berikut menunjukkan validasi ConnectionManager nama dalam metode Validasi dan Jalankan, dan menunjukkan cara menggunakan AcquireConnection metode untuk membuat koneksi fisik dalam metode Execute.

private string connectionManagerName = "";  
  
public string ConnectionManagerName  
{  
  get { return this.connectionManagerName; }  
  set { this.connectionManagerName = value; }  
}  
  
public override DTSExecResult Validate(  
  Connections connections, VariableDispenser variableDispenser,  
  IDTSComponentEvents componentEvents, IDTSLogging log)  
{  
  // If the connection manager exists, validation is successful;  
  // otherwise, fail validation.  
  try  
  {  
    ConnectionManager cm = connections[this.connectionManagerName];  
    return DTSExecResult.Success;  
  }  
  catch (System.Exception e)  
  {  
    componentEvents.FireError(0, "SampleTask", "Invalid connection manager.", "", 0);  
    return DTSExecResult.Failure;  
  }  
}  
  
public override DTSExecResult Execute(Connections connections,   
  VariableDispenser variableDispenser, IDTSComponentEvents componentEvents,   
  IDTSLogging log, object transaction)  
{  
  try  
  {  
    ConnectionManager cm = connections[this.connectionManagerName];  
    object connection = cm.AcquireConnection(transaction);  
    return DTSExecResult.Success;  
  }  
  catch (System.Exception exception)  
  {  
    componentEvents.FireError(0, "SampleTask", exception.Message, "", 0);  
    return DTSExecResult.Failure;  
  }  
}  
Private _connectionManagerName As String = ""  
  
Public Property ConnectionManagerName() As String  
  Get  
    Return Me._connectionManagerName  
  End Get  
  Set(ByVal Value As String)  
    Me._connectionManagerName = value  
  End Set  
End Property  
  
Public Overrides Function Validate( _  
  ByVal connections As Microsoft.SqlServer.Dts.Runtime.Connections, _  
  ByVal variableDispenser As Microsoft.SqlServer.Dts.Runtime.VariableDispenser, _  
  ByVal componentEvents As Microsoft.SqlServer.Dts.Runtime.IDTSComponentEvents, _  
  ByVal log As Microsoft.SqlServer.Dts.Runtime.IDTSLogging) _  
  As Microsoft.SqlServer.Dts.Runtime.DTSExecResult  
  
  ' If the connection manager exists, validation is successful;  
  ' otherwise fail validation.  
  Try  
    Dim cm As ConnectionManager = connections(Me._connectionManagerName)  
    Return DTSExecResult.Success  
  Catch e As System.Exception  
    componentEvents.FireError(0, "SampleTask", "Invalid connection manager.", "", 0)  
    Return DTSExecResult.Failure  
  End Try  
  
End Function  
  
Public Overrides Function Execute( _  
  ByVal connections As Microsoft.SqlServer.Dts.Runtime.Connections, _  
  ByVal variableDispenser As Microsoft.SqlServer.Dts.Runtime.VariableDispenser, _  
  ByVal componentEvents As Microsoft.SqlServer.Dts.Runtime.IDTSComponentEvents, _  
  ByVal log As Microsoft.SqlServer.Dts.Runtime.IDTSLogging, ByVal transaction As Object) _  
  As Microsoft.SqlServer.Dts.Runtime.DTSExecResult  
  
  Try  
    Dim cm As ConnectionManager = connections(Me._connectionManagerName)  
    Dim connection As Object = cm.AcquireConnection(transaction)  
    Return DTSExecResult.Success  
  Catch exception As System.Exception  
    componentEvents.FireError(0, "SampleTask", exception.Message, "", 0)  
    Return DTSExecResult.Failure  
  End Try  
  
End Function  

Lihat juga

Koneksi Integration Services (SSIS)
Membuat Pengelola Koneksi