Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Środowisko SSIS Integration Runtime w usłudze Azure Data Factory
Możesz uruchamiać pakiety Integration Services w razie potrzeby lub w określonych godzinach, korzystając z metod opisanych w Running Packages. Jednak zaledwie kilka linii kodu można również uruchomić pakiet z niestandardowej aplikacji, takiej jak aplikacja Windows Forms, konsola, formularz ASP.NET lub usługa webowa lub usługa Windows.
Ten temat dotyczy:
Programowe ładowanie pakietu
Programowe uruchamianie pakietu
Wszystkie metody używane w tym temacie do ładowania i uruchamiania pakietów wymagają odniesienia do Microsoft. SqlServer.ManagedDTS assembly. Po dodaniu referencji w nowym projekcie importuj Microsoft.SqlServer.Dts.Runtime przestrzeń nazw za pomocą instrukcji using lub Imports .
Programowe ładowanie pakietu
Aby programowo załadować pakiet na komputerze lokalnym, niezależnie od tego, czy jest przechowywany lokalnie, czy zdalnie, wywołaj jedną z następujących metod:
| Lokalizacja przechowywania | Metoda wywoływania |
|---|---|
| Plik | LoadPackage |
| Magazyn pakietów SSIS | LoadFromDtsServer |
| SQL Server | LoadFromSqlServer |
Ważna
Metody Application tej klasy do pracy z SSIS Package Store obsługują jedynie ".", localhost lub nazwę serwera lokalnego. Nie możesz użyć "(lokalnie)".
Programowe uruchamianie pakietu
Opracowanie niestandardowej aplikacji w kodzie zarządzanym, która uruchamia pakiet na komputerze lokalnym, wymaga następującego podejścia. Kroki podsumowane tutaj są przedstawione w przykładowej aplikacji konsolowej, która następuje poniżej.
Programowanie uruchamiania pakietu na komputerze lokalnym
Rozpocznij środowisko programistyczne Visual Studio i stwórz nową aplikację w preferowanym przez siebie języku programistycznym. Ten przykład wykorzystuje aplikację konsolową; jednak możesz także uruchomić pakiet z aplikacji Windows Forms, formularza webowego ASP.NET lub usługi webowej albo usługi Windows.
W menu Project kliknij Dodaj Referencję i dodaj referencję do Microsoft.SqlServer.ManagedDTS.dll. Kliknij przycisk OK.
Użyj instrukcji Visual Basic Imports lub C# using do importu Microsoft. SqlServer.Dts.Runtime namespace.
Dodaj następujący kod do głównej procedury. Ukończona aplikacja konsolowa powinna wyglądać jak następujący przykład.
Note
Przykładowy kod pokazuje ładowanie pakietu z systemu plików za pomocą tej metody LoadPackage . Możesz jednak także załadować pakiet z bazy danych MSDB, wywołując metodę LoadFromSqlServer , lub z magazynu pakietów Integration Services, wywołując metodę LoadFromDtsServer .
Uruchamianie projektu. Przykładowy kod wykonuje pakiet przykładowy CalculatedColumns, który jest zainstalowany wraz z przykładami SQL Server. Wynik wykonania pakietu jest wyświetlany w oknie konsoli.
Przykładowy kod
Imports Microsoft.SqlServer.Dts.Runtime
Module Module1
Sub Main()
Dim pkgLocation As String
Dim pkg As New Package
Dim app As New Application
Dim pkgResults As DTSExecResult
pkgLocation = _
"C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services" & _
"\Package Samples\CalculatedColumns Sample\CalculatedColumns\CalculatedColumns.dtsx"
pkg = app.LoadPackage(pkgLocation, Nothing)
pkgResults = pkg.Execute()
Console.WriteLine(pkgResults.ToString())
Console.ReadKey()
End Sub
End Module
using System;
using Microsoft.SqlServer.Dts.Runtime;
namespace RunFromClientAppCS
{
class Program
{
static void Main(string[] args)
{
string pkgLocation;
Package pkg;
Application app;
DTSExecResult pkgResults;
pkgLocation =
@"C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services" +
@"\Package Samples\CalculatedColumns Sample\CalculatedColumns\CalculatedColumns.dtsx";
app = new Application();
pkg = app.LoadPackage(pkgLocation, null);
pkgResults = pkg.Execute();
Console.WriteLine(pkgResults.ToString());
Console.ReadKey();
}
}
}
Rejestrowanie wydarzeń z pakietu biegowego
Gdy uruchamiasz pakiet programowo jak pokazano w poprzednim przykładzie, możesz również chcieć rejestrować błędy i inne zdarzenia, które pojawiają się podczas wykonywania pakietu. Możesz to osiągnąć, dodając klasę, która dziedziczy z tej DefaultEvents klasy, oraz przekazując referencję do tej klasy podczas ładowania pakietu. Chociaż poniższy przykład obejmuje tylko OnError samo zdarzenie, istnieje wiele innych zdarzeń, które klasa DefaultEvents pozwala uchwycić.
Programowanie uruchamiania pakietu na lokalnym komputerze i przechwytywania zdarzeń pakietu
Wykonaj kroki z poprzedniego przykładu, aby stworzyć projekt dla tego przykładu.
Dodaj następujący kod do głównej procedury. Ukończona aplikacja konsolowa powinna wyglądać jak następujący przykład.
Uruchamianie projektu. Przykładowy kod wykonuje pakiet przykładowy CalculatedColumns, który jest zainstalowany wraz z przykładami SQL Server. Wynik wykonania pakietu jest wyświetlany w oknie konsoli wraz z ewentualnymi wystąpieniami błędów.
Przykładowy kod
Imports Microsoft.SqlServer.Dts.Runtime
Module Module1
Sub Main()
Dim pkgLocation As String
Dim pkg As New Package
Dim app As New Application
Dim pkgResults As DTSExecResult
Dim eventListener As New EventListener()
pkgLocation = _
"C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services" & _
"\Package Samples\CalculatedColumns Sample\CalculatedColumns\CalculatedColumns.dtsx"
pkg = app.LoadPackage(pkgLocation, eventListener)
pkgResults = pkg.Execute(Nothing, Nothing, eventListener, Nothing, Nothing)
Console.WriteLine(pkgResults.ToString())
Console.ReadKey()
End Sub
End Module
Class EventListener
Inherits DefaultEvents
Public Overrides Function OnError(ByVal source As Microsoft.SqlServer.Dts.Runtime.DtsObject, _
ByVal errorCode As Integer, ByVal subComponent As String, ByVal description As String, _
ByVal helpFile As String, ByVal helpContext As Integer, _
ByVal idofInterfaceWithError As String) As Boolean
' Add application-specific diagnostics here.
Console.WriteLine("Error in {0}/{1} : {2}", source, subComponent, description)
Return False
End Function
End Class
using System;
using Microsoft.SqlServer.Dts.Runtime;
namespace RunFromClientAppWithEventsCS
{
class MyEventListener : DefaultEvents
{
public override bool OnError(DtsObject source, int errorCode, string subComponent,
string description, string helpFile, int helpContext, string idofInterfaceWithError)
{
// Add application-specific diagnostics here.
Console.WriteLine("Error in {0}/{1} : {2}", source, subComponent, description);
return false;
}
}
class Program
{
static void Main(string[] args)
{
string pkgLocation;
Package pkg;
Application app;
DTSExecResult pkgResults;
MyEventListener eventListener = new MyEventListener();
pkgLocation =
@"C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services" +
@"\Package Samples\CalculatedColumns Sample\CalculatedColumns\CalculatedColumns.dtsx";
app = new Application();
pkg = app.LoadPackage(pkgLocation, eventListener);
pkgResults = pkg.Execute(null, null, eventListener, null, null);
Console.WriteLine(pkgResults.ToString());
Console.ReadKey();
}
}
}
Treści powiązane
- zrozumienie różnic między wykonywania lokalnego i zdalnego
- programowe ładowanie i uruchamianie pakietu zdalnego
- Ładowanie danych wyjściowych pakietu lokalnego