0
我們已經創建了一個工作流程作爲一個SSIS包,並希望找到一種獲得對此代碼的訪問方式,以便通過vb.net我們可以動態訪問並運行該代碼。例如,我們想更改正在使用的數據源,或更改現有軟件包的列映射,然後從vb.net應用程序執行它們。請告知最好的方法來做到這一點。如何在VB中以編程方式編輯SSIS包?
我們已經創建了一個工作流程作爲一個SSIS包,並希望找到一種獲得對此代碼的訪問方式,以便通過vb.net我們可以動態訪問並運行該代碼。例如,我們想更改正在使用的數據源,或更改現有軟件包的列映射,然後從vb.net應用程序執行它們。請告知最好的方法來做到這一點。如何在VB中以編程方式編輯SSIS包?
你會發現一些簡單的任務,其他的不是那麼多。
一般而言,您會有興趣閱讀Developers Guide to Integration Services。特別感興趣的是Building Packages Programmatically和Running 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可能在這方面有一些幫助。
不知道我是否得到這個權利。當你說「獲得對這個代碼的訪問權限」時,你的意思是包裹背景中的代碼?您可以使用軟件包配置在運行時更改軟件包的各種屬性。但是列映射通常是靜態的,並且在每次運行中通常不會改變。 – rvphx