Połączenia ze źródłami danych w zadania skryptu
Menedżer połączeń zapewnia dostęp do źródeł danych, które zostały skonfigurowane w pakiet.Aby uzyskać więcej informacji, zobacz Integracja usług połączeń.
Zadania skryptu można uzyskać dostęp do tych zarządców połączenia za pośrednictwem Connections Właściwość Dts obiektu.Każdy Menedżer połączeń w Connections kolekcja przechowuje informacje dotyczące sposobu łączenia się z danych Yródłowych źródło.
Gdy wywołanie AcquireConnection metoda Menedżera połączeń, Menedżer połączeń łączy się z danymi źródło, jeśli nie jest już połączony i zwraca odpowiednie połączenie lub informacje o połączeniu do użycia w Twoim kod zadania skryptu.
Ostrzeżenie
Należy znać typ połączenia zwrócony przez menedżer połączeń przed wywoływaniem AcquireConnection.Ponieważ zadania skryptu Option Strict włączony, musi oddać połączenia, który jest zwracany jako typ Object, do odpowiedniego typu połączenia przed użyciem go
Można użyć Contains metoda Connections kolekcja zwrócony przez Connections właściwość, aby wyszukać istniejącego połączenia przed użyciem połączenia w kodzie.
![]() |
---|
Nie można wywołać AcquireConnection metoda menedżerów połączenia zwracających niezarządzanych obiektów, takich jak Menedżer połączeń OLE DB i Menedżer połączeń programu Excel w kod zarządzany z zadań skryptu.Jednak można odczytać ConnectionString właściwość tych zarządców połączenia i połączyć się przy użyciu połączenia źródła danych bezpośrednio w kodzie ciąg z OledbConnection z System.Data.OleDb obszaru nazw. Jeśli musisz wywołać AcquireConnection menedżer połączeń, który zwraca obiekt niezarządzanego, użyj metoda ADO.NET menedżer połączeń.Podczas konfigurowania ADO.NET menedżer połączeń do używania dostawcy OLE DB, łączy się za pomocą .NET Framework Dostawca danych OLE DB.W takim przypadek AcquireConnection Metoda zwraca System.Data.OleDb.OleDbConnection zamiast obiektu niezarządzanego.Aby skonfigurować ADO.NET menedżer połączeń do użytku z źródło danych Excel zaznacz Microsoft OLE DB Provider for Jet, określ plik programu Excel i wprowadź Excel 8.0 (dla programu Excel 97 i nowszych) jako wartość Właściwości rozszerzone na wszystkich strona menedżer połączeń okno dialogowe. |
Przykład połączenia
Poniższy przykład ilustruje sposób dostępu zarządców połączenia w ramach zadania skryptu.Próbki zakłada utworzeniu i skonfigurowaniu ADO.NET Menedżera połączeń o nazwie Test ADO.NET połączenia i Menedżer połączeń płaskiego pliku o nazwie Test pliku prostego połączenia.Należy zauważyć, że ADO.NET zwraca menedżer połączeń SqlConnection obiektu, można natychmiast, aby nawiązać połączenie źródło danych.Płaska menedżer połączeń, z drugiej strony, zwraca tylko ciąg, który zawiera ścieżka i nazwę pliku.Należy użyć metody z System.IO obszaru nazw, aby otworzyć i pracować z plik prosty.
Public Sub Main()
Dim myADONETConnection As SqlClient.SqlConnection
myADONETConnection = _
DirectCast(Dts.Connections("Test ADO.NET Connection").AcquireConnection(Dts.Transaction), _
SqlClient.SqlConnection)
MsgBox(myADONETConnection.ConnectionString, _
MsgBoxStyle.Information, "ADO.NET Connection")
Dim myFlatFileConnection As String
myFlatFileConnection = _
DirectCast(Dts.Connections("Test Flat File Connection").AcquireConnection(Dts.Transaction), _
String)
MsgBox(myFlatFileConnection, MsgBoxStyle.Information, "Flat File Connection")
Dts.TaskResult = ScriptResults.Success
End Sub
using System;
using System.Data.SqlClient;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;
public class ScriptMain
{
public void Main()
{
SqlConnection myADONETConnection = new SqlConnection();
myADONETConnection = (SqlConnection)(Dts.Connections["Test ADO.NET Connection"].AcquireConnection(Dts.Transaction)as SqlConnection);
MessageBox.Show(myADONETConnection.ConnectionString, "ADO.NET Connection");
string myFlatFileConnection;
myFlatFileConnection = (string)(Dts.Connections["Test Flat File Connection"].AcquireConnection(Dts.Transaction) as String);
MessageBox.Show(myFlatFileConnection, "Flat File Connection");
Dts.TaskResult = (int)ScriptResults.Success;
}
}
|