Udostępnij za pośrednictwem


Połączenia ze źródłami danych w niestandardowego zadania

Połącz zadania z zewnętrznymi źródłami danych do pobierania lub zapisywanie danych za pomocą menedżer połączeń.W projekcie czas, Menedżer połączeń reprezentuje połączenie logiczne i opisano najważniejsze informacje, takie jak nazwa serwera i wszystkie właściwości uwierzytelnianie.Przy uruchomieniu czas, wywołanie zadania AcquireConnection metoda menedżer połączeń do ustanawiania fizycznego połączenia źródło danych.

Ponieważ pakiet może zawierać wiele zadań, z których każdy może być połączenia różnych źródeł danych, pakiet śledzi wszystkich menedżerów połączenia kolekcja, Connections kolekcja.Zadania użyć kolekcja w ich pakiet Aby znaleźć połączenia Menedżera, który zostanie użyty podczas sprawdzania poprawności i wykonanie.Connections kolekcja jest pierwszy parametr Validate i Execute metody.

Można uniemożliwić korzystanie z menedżer połączeń niewłaściwy wyświetlając zadania ConnectionManager obiektów z kolekcja do użytkownika za pomocą okna dialogowego lub drop -niedziałający na liście interfejs graficznego.Dzięki temu użytkownik sposobem wybrania spośród tylko ConnectionManager obiekty odpowiedniego typu, które są zawarte w pakiet.

Zadania wywołanie AcquireConnection metoda określenia fizycznego połączenia źródło danych.Metoda zwraca podstawowej obiekt połączenia, które mogą być następnie używane przez zadanie.Ponieważ Menedżer połączeń został zidentyfikowany szczegółów implementacji obiektu podstawowego połączenia z zadania, zadanie ma tylko wywołania AcquireConnection metoda ustanawiania połączenia, a nie ma zajmować się innymi aspektami połączenia.

Przykład

Następujący przykładowy kod ilustruje sprawdzanie poprawności ConnectionManager nazwy sprawdzania poprawności i wykonywania metod i przedstawiono sposób użycia AcquireConnection metody ustanawiania połączenia fizycznego w Metoda 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
Ikona usług Integration Services (mała)Bieżąco z usług integracji

Najnowsze pliki do pobrania, artykuły, próbki i wideo firmy Microsoft, jak również wybranych rozwiązań ze Wspólnoty, odwiedź witrynę Integration Services strona na MSDN i TechNet:

Aby otrzymywać automatyczne powiadomienia dotyczące tych aktualizacji, zasubskrybuj źródła danych RSS dostępne na tej stronie.