2013-01-08 64 views
0

我們已經創建了一個工作流程作爲一個SSIS包,並希望找到一種獲得對此代碼的訪問方式,以便通過vb.net我們可以動態訪問並運行該代碼。例如,我們想更改正在使用的數據源,或更改現有軟件包的列映射,然後從vb.net應用程序執行它們。請告知最好的方法來做到這一點。如何在VB中以編程方式編輯SSIS包?

+0

不知道我是否得到這個權利。當你說「獲得對這個代碼的訪問權限」時,你的意思是包裹背景中的代碼?您可以使用軟件包配置在運行時更改軟件包的各種屬性。但是列映射通常是靜態的,並且在每次運行中通常不會改變。 – rvphx

回答

1

你會發現一些簡單的任務,其他的不是那麼多。

一般而言,您會有興趣閱讀Developers Guide to Integration Services。特別感興趣的是Building Packages ProgrammaticallyRunning and Managing Packages Programmatically

例如,run a package從VB.NET

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 

以編程方式更改連接管理器,它會是VB.NET相當於

ConnectionManager item = ep.Connections["MyConnectionManagerName"] 
item.ConnectionString = @"Provider=SQLNCLI10.1;Data Source=Server1;Initial Catalog=ABC;Integrated Security=SSPI;"; 

更改列映射,這就是它會變得有趣,所有有趣的詞的定義。我有一個蒸餾的例子,但它需要一些工作,你會想真正理解整個對象模型(我希望你喜歡COM)。 EzAPI可能在這方面有一些幫助。