VB.NET中執行SSIS產生的DTSX

VB.NET中執行SSIS產生的DTSX

當需要匯入匯出大量的資料時,尤其是異質的資料(例如把Access的mdb資料匯入到MS-SQL),使用SSIS的方式速度是最快的,而且可以在SQL Server Management Studio裡面,直接在操作匯入匯出的時候,把過程儲存成SSIS的格式(.DTSX)。下次有相同的匯入匯出動作,就可以直接透過儲存的dstx來使用。

如果想在程式中執行DTSX,可以透過以下的方式處理

  1. 在專案中,要加入參考【Microsoft.SQLServer.ManagedDTS】
    (可以在『C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SqlServer.ManagedDTS\[版本]』裡面找到)
  2. Imports Microsoft.SqlServer.Dts.Runtime
  3. 相關程式碼如下:
    Dim app As Application = New Application()
    Dim p As Package = app.LoadPackage(pkg, Nothing)
    
    Dim vir As Variables = p.Variables
    
    If Not p.Execute(Nothing, vir, Nothing, Nothing, Nothing) = DTSExecResult.Success Then
       Throw New Exception("NICE.mdb檔案匯入SQL失敗!!")
    Else
        Return "Success"
    End If

     

可以在程式中執行,那麼無論是透過畫面的按鈕,還是排程都可以處理這樣的動作了!!


另外要注意的是,如果是使用Web Service或者是ASP.NET的話,可能要注意一下權限的問題


以下是簽名:


Microsoft MVP
Visual Studio and Development Technologies
(2005~2019/6) 
topcat
Blog:http://www.dotblogs.com.tw/topcat