簡體   English   中英

C# - 從wpf應用程序在SQL Server上運行SSIS

[英]C# - Running a SSIS on a SQL Server from a wpf Application

我似乎無法找到任何有用的文件,我需要的具體情況。 我正在嘗試啟動並將變量傳遞到部署在sql server上的SSIS包中。

在管理工作室中,可以在Integration Services Catalog\\SSISDB\\IhsDataSync\\Projects\\LoadHeader\\Packages\\Package.dtsx下找到該包。 從我發現的來源看來,我需要使用Microsoft.SqlServer.Dts.Runtime; 部件。 當我去寫代碼的其余部分是我有成千上萬的問題。

到目前為止,我有:

            try
        {
            Application app = new Application();
            Package package = null;

            package = app.LoadFromSqlServer("SSISDB\IhsDataSync\Projects\LoadHeader\Packages\Package.dtsx","servername","username","password",IDTSEvents);
        }
        catch
        {

        }

大多數示例僅顯示如何加載本地包,在這種情況下,第一個方法參數非常明顯。 在sql server上使用包的路徑是什么?

LoadFromSqlServer()的最后一個參數是什么 - > IDTSEvents ??? 我如何注入變量?

你能從shell調用dtexec嗎? 如果使用這種方法,則會丟失使用純編程方法獲得的異常掛鈎,但將值傳遞給ssis變量就像/ SET一樣簡單您仍然可以查詢返回代碼以獲得成功。 它可以作為一種解決方法。

我想你要問的主要問題是如何在執行前為變量賦值? 如果是這樣,您可以使用相應的DtsContainer(或其子對象)對象來訪問變量,然后將值分配給特定變量。

讓我們假設您在包本身的名稱空間“User”中使用名稱“ABC”的變量。 你可以這樣做:

package = app.LoadFromSqlServer("SSISDB\IhsDataSync\Projects\LoadHeader\Packages\Package.dtsx","servername","username","password", idtsEvents);
package.Variables["User::ABC"].Value = <value of approproate type>

如果您的變量與子容器或任務相關聯,那么您可以獲得對該特定容器/任務的引用,然后像上面的示例一樣訪問Variables屬性。

LoadFromSqlServer的最后一個參數是您訪問可能作為Load調用的一部分發生的事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM