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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk