2013-07-04 3 views
0

Как я могу подключить задачу SQL к задаче потока данных программно?Программный вызов задачи SQL для задачи потока данных (C#)

SQL Задача: поток

Executable exec = package.Executables.Add("STOCK:SQLTask"); 
TaskHost thMainPipe = (TaskHost)exec; 

...

данных:

MainPipe mp = ((TaskHost)stagingPackage.Executables.Add("DTS.Pipeline")).InnerObject as MainPipe; 

...

Пробовал с помощью PrecedenceConstraints.Add, получить COM ошибку.

PrecedenceConstraints.Add(derivedTask,(Executable) mp); 

Невозможно бросить COM объект типа 'System .__ ComObject' к классу типа 'Microsoft.SqlServer.Dts.Runtime.Executable'.

+1

Используйте STOCK: PipelineTask вместо DTS.Pipeline –

+0

пост полный блок кода, чтобы понять эту проблему, thnx –

+0

S.M, это сработало. Какая разница между двумя? – dirtyw0lf

ответ

1

Используйте STOCK: PipelineTask вместо DTS.Pipeline. Executables.Add() Метод ожидает CLSID, PROGID, STOCK прозвище или свойство CreationName объекта TaskInfo. STOCK прозвище в основном используется. DTS.Pipeline, возможно, не был признан ни одним из них. Если вы не используете Stock Moniker, укажите CLSID или PROGID, эквивалентные STOCK: PipelineTask.

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