Ładowanie i programowo uruchomiony pakiet lokalny
Można uruchomić Integration Services pakiety jako wymagane, albo na wstępnie określone godziny przy użyciu metod opisanych w Uruchamianie pakiety.Jednakże zawierającym tylko kilka wierszy kodu, można również uruchomić pakiet z niestandardowej aplikacji, takich jak aplikacja Windows Forms, aplikacji konsoli, formularz programu ASP.NET sieci Web lub usługa sieci Web lub usługa systemu Windows.
W tym temacie omówiono:
Ładowanie programowo pakiet
Programowo uruchomiony pakiet
Wszystkie metody używane w tym temacie do załadowania i uruchomienia pakietów wymagają odwołania do Microsoft.SqlServer.ManagedDTS wirtualny plik dziennika. Po dodaniu odwołania w nowym projekcie, należy zaimportować Microsoft.SqlServer.Dts.Runtime obszar nazw z using lub Imports Instrukcja.
Ładowanie pakiet programowe
Aby załadować pakiet programowo na komputerze lokalnym, czy pakiet jest przechowywany lokalnie lub zdalnie, wywołaj jedną z następujących metod:
Lokalizacja przechowywania |
Metoda służąca do wywołania |
---|---|
Oznacza to, można użyć tego narzędzie jako klient kontrola urządzenie źródłowe od swojego dostawca. |
LoadPackage(String, IDTSEvents) lub LoadPackage(String, IDTSEvents, Boolean) |
Magazyn pakiet SSIS |
LoadFromDtsServer(String, String, IDTSEvents) |
SQL Server |
LoadFromSqlServer(String, String, String, String, IDTSEvents) |
Important Note: |
---|
Metody Applicationobsługują tylko klasy do pracy z magazynu pakiet SSIS ".", localhost lub serwer nazw dla serwera lokalnego. Nie można użyć "(local)". |
Uruchomiony pakiet programowe
Opracowywania aplikacji niestandardowych w zarządzanym kodem, który będzie uruchamiany pakiet na komputerze lokalnym wymaga następujących podejścia.W tym miejscu podsumowania czynności są pokazano w przykładowej aplikacji konsoli, który następuje.
Aby uruchomić pakiet programowo na komputerze lokalnym
Uruchom środowiska programistycznego Visual Studio i utworzyć nową aplikację w rozwoju preferowany język.W poniższym przykładzie za pomocą aplikacji konsoli; jednakże można także uruchomić pakiet z aplikacji Windows Forms, formularz programu ASP.NET sieci Web lub usługa sieci Web lub usługa systemu Windows.
Na Projekt menu kliknijDodaj odwołanie i Dodaj odwołanie do Microsoft.SqlServer.ManagedDTS.dll.Kliknij przycisk OK.
Za pomocą języka Visual Basic Imports Instrukcja lub C# using instrukcję, aby zaimportować Microsoft.SqlServer.dts.Runtime obszar nazw.
Dodaj następujący kod w głównej procedury.Aplikacja konsoli zakończonych powinien wyglądać w poniższym przykładzie.
Uwaga
Przykładowy kod demonstruje ładowania pakiet z systemu plików przy użyciu LoadPackage(String, IDTSEvents) Metoda. Jednak można również ładować pakietu z bazy danych MSDB, wywołując LoadFromSqlServer(String, String, String, String, IDTSEvents) Metoda, lub z Integration Services pakiet magazynu, wywołując LoadFromDtsServer(String, String, IDTSEvents) Metoda.
Uruchom projekt.Przykładowy kod jest wykonywany pakiet próbki CalculatedColumns, który jest instalowany z SQL Server próbki. Wynikiem wykonania pakiet 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();
}
}
}
Przechwytywanie zdarzenia z pakiet pracy
Po uruchomieniu pakietu programowo, jak pokazano w poprzednim przykładzie, również można przechwytywać błędy i inne zdarzenia występujące, gdy pakiet jest wykonywana.Można to osiągnąć przez dodanie klasy, która dziedziczy DefaultEvents Klasa i przez przekazując załadować pakiet odwołanie do tej klasy. Mimo że w poniższym przykładzie przechwytuje jedynie OnError(DtsObject, Int32, String, String, String, Int32, String) zdarzenie, występują inne zdarzenie, DefaultEvents Klasa pozwala przechwytywać.
Aby uruchomić pakiet na komputerze lokalnym programowo i przechwytywania zdarzeń pakietu
Wykonaj kroki opisane w poprzednim przykładzie, aby utworzyć projekt w tym przykładzie.
Dodaj następujący kod w głównej procedury.Aplikacja konsoli zakończonych powinien wyglądać w poniższym przykładzie.
Uruchom projekt.Przykładowy kod jest wykonywany pakiet próbki CalculatedColumns, który jest instalowany z SQL Server próbki. Wynikiem wykonania pakiet jest wyświetlany znajdujących się w oknie konsoli i wszystkie błędy.
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();
}
}
}
|