Можете ли да стартирате SSIS задача от .net?

Имам планирана задача на sql агент, която изпълнява SSIS пакет. Искам да мога да стартирам SSIS пакета от .net. Има ли начин или да стартирате пакета SSIS директно, или поне да стартирате задачата на SQL агента, която на свой ред ще стартира пакета SSIS.

Ако помага, то е за уеб приложение .net 3.5, написано на C#

Благодаря!


person ArchieVersace    schedule 06.08.2009    source източник


Отговори (2)


Наличните опции за изпълнение на SSIS пакет са -

  • Стартирайте пакета програмно, като използвате SSIS Object Model. Това се обсъжда подробно в Books Online тук.

Пример:

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 = "<package path>\CalculatedColumns.dtsx";
            app = new Application();
            pkg = app.LoadPackage(pkgLocation, null);
            pkgResults = pkg.Execute();

            Console.WriteLine(pkgResults.ToString());
            Console.ReadKey();
        }
    }
}
  • Стартирайте процеса DTEXEC.EXE. DTEXEC е помощна програма за команден ред за изпълнение на SSIS пакети. Вижте опциите му за команден ред тук.

  • Използвайте SQL агент. Можете да конфигурирате задание на агент да изпълнява вашия пакет (или да го направите ръчно предварително, ако пакетът е статичен, или програмно с помощта на SMO или с помощта на SQL съхранени процедури непосредствено преди изпълнение на пакета), и след това да го стартирате програмно с помощта на SMO или sp_start_job.

  • Използвайте друга помощна програма, за да стартирате DTEXEC вместо вас.

  • Създайте персонализирано приложение, което ще изпълнява пакета (или като използвате OM, както е описано в метод #1, или използвате DTEXEC, както в метод #2). Представете го като уеб услуга или DCOM клас, извикайте тази услуга от вашата програма.

  • Измислете своя собствена :)

Справка: Програмно изпълнение на SSIS пакет

person Kirtan    schedule 06.08.2009
comment
Използвам вашето решение за Winform. Получавам червени завъртания под следното: Application app;, app = new Application(); и pkg = app.LoadPackage(pkgLocation, null); със следните изключения: Error 4 'Application' is an ambiguous reference between 'System.Windows.Forms.Application' and 'Microsoft.SqlServer.Dts.Runtime.Application' и Error 6 The type 'System.Windows.Forms.Application' has no constructors defined - какво трябва да променя за Winform? - person J.S. Orris; 22.03.2015

да Погледнете в пространството от имена Microsoft.SqlServer.Dts.Runtime. Класът Package ще предостави методите за изпълнението му.

person danish    schedule 06.08.2009