2017-02-03 13 views
1

Я не могу найти какую-либо полезную документацию для конкретной ситуации, в которой я нуждаюсь. Я пытаюсь запустить и передать переменные в пакет SSIS, который развертывается на сервере sql.C# - запуск SSIS на SQL Server из приложения wpf

В студии управления пакет находится в пределах 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?

Что является последним параметром LoadFromSqlServer() -> IDTSEvents ??? Как мне вставлять переменные?

ответ

0

Можете ли вы назвать dtexec из оболочки? Если вы используете этот подход, вы теряете крючки исключений, которые вы получаете с помощью чистого программного подхода, но передача значений в переменные ssis так же просто, как/SET Вы все еще можете запросить код возврата для успеха. Это может сделать обходной путь.

0

Я понимаю, что основной вопрос, который вы задаете, заключается в том, как вы можете назначать значения для переменных перед выполнением? Если это так, вы можете использовать соответствующий объект DtsContainer (или его дочерний) для доступа к переменным, а затем присваивать значение определенной переменной.

Скажем, у вас есть переменная с именем «ABC» в пространстве имен «Пользователь» на самом пакете. Вы можете сделать это:

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

Если переменная связана с дочерним контейнером или задачи, то вы можете получить ссылку на этот sepcific контейнер/задачи, а затем получить доступ к свойству Переменные, как в примере выше.

Последний параметр LoadFromSqlServer предназначен для доступа к событиям, которые могут произойти как часть вызова Load.

 Смежные вопросы

  • Нет связанных вопросов^_^