2009-03-06 4 views

ответ

2

У вас должен быть включен xp_cmdshell, если это не так, выполните: sp_configure 'xp_cmdshell', '1' в SSMS на вашем сервере.

Создание процедуры сохранения и поместить в него следующий код:

DECLARE @SSISPackage VARCHAR(1000) 
DECLARE @cmd VARCHAR(max) 
DECLARE @variable_value1 varchar(255) 
DECLARE @Result int 

SET @SSISPackage = 'C:\path_to_the_package\package_name.dtsx' 
SET @cmd = 'dtexec /F "' + @SSISPackage + '"' 
// if you have variables in the package that need to be set up 
// add them here 
SET @cmd = @cmd + ' /SET \Package.Variables[User::somevariable1].Properties[Value];"' + @variable_value1 + '"' 
SET @cmd = @cmd + ' /SET \Package.Variables[User::somevariable2].Properties[Value];"' + @variable_value2 + '"' 
SET @cmd = @cmd + ' /SET \Package.Variables[User::somevariable3].Properties[Value];"' + @variable_value3 + '"' 

EXECUTE @Result = master..xp_cmdshell @cmd, NO_OUTPUT 

Затем вызовите хранимую процедуру из VB6, через ADODB.Command.

Вы здесь примеры:

Я надеюсь, что это помогает.

0

Вероятно, проще всего раскошеливаться и run dtexec

В качестве альтернативы, вы можете use the using Microsoft.SqlServer.Dts assemblies в .NET и обернуть его в COM (или EXE), а затем вызвать его из VB6.

В этой второй ссылке есть некоторые другие варианты, которые могут быть применимы к VB6 в некотором роде, но, вероятно, все это приведет к завершению .NET-кода в COM-объекте или EXE.

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