2009-08-06 15 views
10

Bir SSIS paketi çalıştıran zamanlanmış sql aracı görevim var. SSIS paketini .net'ten çalıştırabilmek istiyorum. SSIS paketini doğrudan çalıştırmak veya en azından SSIS paketini çalıştıran SQL aracı görevini çalıştırmak için bir yol var mı.Bir SSIS görevini .net'ten çalıştırabilir misiniz?

buna

sayesinde C# ile yazılmış bir .net 3.5 web uygulaması içindir yardımcı olursa!

cevap

11

seçenekleridir -

  • Çalıştır paket programlı SSIS nesne modeli kullanarak. Bu, Çevrimiçi Kitaplar here'da ayrıntılı olarak tartışılmıştır.

Örneği:

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(); 
     } 
    } 
} 
  • Başlangıç ​​DTExec.exe proses. DTEXEC, SSIS paketlerini yürütmek için komut satırı yardımcı programıdır. Komut satırı seçenekleri here'a bakın. SQL Aracısı'nı kullanın. Bir Agent işini paketinizi çalıştırabilmeniz için yapılandırabilirsiniz (paket statik değilse veya SMO kullanarak programlı olarak el ile önceden yaptıktan veya paketin çalıştırılmasından hemen önce SQL saklı yordamları kullanarak) ve sonra SMO veya sp_start_job programını kullanarak program aracılığıyla başlatılabilir.

  • Sizin için DTEXEC'i başlatmak üzere başka bir yardımcı program kullanın.

  • Paketi çalıştıracak özel bir uygulama oluşturun (yöntem # 1'de açıklanan OM'yi kullanarak veya yöntem 2'deki gibi DTEXEC'i kullanarak). Bir web hizmeti veya DCOM sınıfı olarak gösterin, bu hizmeti programınızdan arayın.

  • Kendi :) İcat

Referans: Running SSIS Package Programmatically

+0

Im bir Winform için çözüm kullanarak. Aşağıda kırmızı squiggler alıyorum: 'Uygulama uygulaması;', app = yeni Uygulama(); 've pkg = app.LoadPackage (pkgLocation, null)'; aşağıdaki istisnalar dışında: 'Hata 'Application', 'System.Windows.Forms.Application' ve 'Microsoft.SqlServer.Dts.Runtime.Application' \t' ve 'Hata arasında belirsiz bir referanstır. ' System.Windows.Forms.Application 'tanımlı bir kurucu yok' - Winform için neye ihtiyacım var? –

0

Evet. Microsoft.SqlServer.Dts.Runtime ad alanına bakın. Paket sınıfı, onu çalıştırmak için yöntemler sağlayacaktır. Bir SSIS paketi çalıştırmak için kullanılabilir

İlgili konular