Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
SSIS Integration Runtime v rámci Azure Data Factory
Integrační služby můžete spouštět podle potřeby nebo v předem určených časech pomocí metod popsaných v Running Packages. Nicméně s pouhými několika řádky kódu můžete také spustit balíček z vlastní aplikace, jako je aplikace model Windows Forms, konzolová aplikace, webový formulář nebo webová služba ASP.NET, nebo služba Windows.
Toto téma se zabývá:
Načítání balíčku programově
Programové spuštění balíčku
Všechny metody používané v tomto tématu pro načítání a spuštění balíčků vyžadují odkaz na Microsoft. SqlServer.ManagedDTS assembler. Po přidání reference do nového projektu importujte Microsoft.SqlServer.Dts.Runtime jmenný prostor pomocí příkazu using nebo Imports .
Načítání balíčku programovaně
Pro programové načtení balíčku na lokálním počítači, ať už je uložen lokálně nebo vzdáleně, použijte jednu z následujících metod:
| Umístění úložiště | Metoda volání |
|---|---|
| Soubor | LoadPackage |
| SSIS Package Store | LoadFromDtsServer |
| SQL Server | LoadFromSqlServer |
Important
Metody této třídy Application pro práci se SSIS Package Store podporují pouze ".", localhost nebo název serveru pro lokální server. Nemůžete použít "(lokální)".
Programové spuštění balíčku
Vývoj vlastní aplikace ve spravovaném kódu, která spustí balíček na lokálním počítači, vyžaduje následující přístup. Kroky shrnuté zde jsou ukázány v následující ukázkové aplikaci konzole.
Pro programové spuštění balíčku na lokálním počítači
Začněte vývojové prostředí Visual Studio a vytvořte novou aplikaci ve vašem preferovaném vývojovém jazyce. Tento příklad používá konzolovou aplikaci; ale můžete také spustit balíček z aplikace model Windows Forms, webového formuláře nebo webové služby ASP.NET, případně služby Windows.
V menu Project klikněte na Přidat odkaz a přidejte odkaz na Microsoft.SqlServer.ManagedDTS.dll. Klikněte na OK.
Použijte příkaz Visual Basic Imports nebo příkaz C# using k importu Microsoft. SqlServer.Dts.Runtime jmenný prostor.
Přidejte následující kód do hlavní rutiny. Dokončená konzolová aplikace by měla vypadat jako následující příklad.
Note
Ukázkový kód ukazuje načítání balíčku ze souborového systému pomocí této metody LoadPackage . Balíček však můžete také načíst z databáze MSDB voláním metody LoadFromSqlServer , nebo z úložiště balíčků Integration Services voláním metody LoadFromDtsServer .
Spusťte projekt. Ukázkový kód spouští vzorový balíček CalculatedColumns, který je nainstalován se vzorky SQL Server. Výsledek spuštění balíčku se zobrazí v okně konzole.
Ukázka kódu
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();
}
}
}
Zachycení událostí z běžícího balíčku
Když spusťujete balíček programovaně, jak je ukázáno v předchozí ukázkě, můžete také chtít zachytit chyby a další události, které nastávají při spuštění balíčku. Toho můžete dosáhnout přidáním třídy, která zdědí z této DefaultEvents třídy, a předáním odkazu na tuto třídu při načtení balíčku. Ačkoliv následující příklad zachycuje pouze událost, OnError existuje mnoho dalších událostí, které třída DefaultEvents umožňuje zachytit.
Programově spustit balíček na lokálním počítači a zachytit události balíčku
Postupujte podle kroků v předchozím příkladu a vytvořte projekt pro tento příklad.
Přidejte následující kód do hlavní rutiny. Dokončená konzolová aplikace by měla vypadat jako následující příklad.
Spusťte projekt. Ukázkový kód spouští vzorový balíček CalculatedColumns, který je nainstalován se vzorky SQL Server. Výsledek spuštění balíčku se zobrazí v okně konzole spolu s případnými chybami, které nastanou.
Ukázka kódu
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();
}
}
}