2009-08-06 30 views
10

Tôi đã lập lịch tác vụ sql được lập lịch chạy gói SSIS. Tôi muốn có thể chạy gói SSIS từ .net. Có cách nào để chạy trực tiếp gói SSIS hoặc ít nhất là chạy tác vụ của tác nhân SQL để lần lượt chạy gói SSIS.Bạn có thể chạy tác vụ SSIS từ .net không?

Nếu nó giúp ứng dụng web .net 3.5 được viết bằng C#

Cảm ơn!

Trả lời

11

Các tùy chọn có sẵn để chạy một gói SSIS là -

  • Run gói lập trình sử dụng SSIS Object Model. Điều này được thảo luận chi tiết trong Sách trực tuyến here.

Một thí dụ:

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(); 
     } 
    } 
} 
  • quá trình Bắt đầu DTEXEC.EXE. DTEXEC là tiện ích dòng lệnh để thực hiện các gói SSIS. Xem các tùy chọn dòng lệnh here.

  • Sử dụng tác nhân SQL. Bạn có thể cấu hình một tác vụ Agent để chạy gói của bạn (hoặc làm thủ công trước nếu gói là tĩnh, hoặc lập trình sử dụng SMO hoặc sử dụng các thủ tục lưu sẵn SQL ngay trước khi chạy gói), và sau đó bắt đầu lập trình bằng SMO hoặc sp_start_job.

  • Sử dụng một số tiện ích khác để khởi động DTEXEC cho bạn.

  • Tạo ứng dụng tùy chỉnh sẽ chạy gói (sử dụng OM như được mô tả trong phương pháp # 1 hoặc sử dụng DTEXEC như trong phương pháp # 2). Hiển thị nó như một dịch vụ web hoặc lớp DCOM, gọi dịch vụ này từ chương trình của bạn.

  • Invent :) riêng bạn

tham khảo: Running SSIS Package Programmatically

+0

Im sử dụng giải pháp của bạn cho một Winform. Tôi nhận được squigglies đỏ dưới đây: 'Ứng dụng ứng dụng;', 'app = new Application();', và 'pkg = app.LoadPackage (pkgLocation, null)'; với các ngoại lệ sau: 'Lỗi 'Ứng dụng' là tham chiếu mơ hồ giữa 'System.Windows.Forms.Application' và 'Microsoft.SqlServer.Dts.Runtime.Application' \t' và 'Lỗi Loại ' System.Windows.Forms.Application 'không có hàm tạo nào được định nghĩa' - tôi cần thay đổi gì cho Winform? –

0

Có. Nhìn vào không gian tên Microsoft.SqlServer.Dts.Runtime. Lớp Package sẽ cung cấp các phương thức để chạy nó.

Các vấn đề liên quan