2009-03-06 10 views

Antwort

2

Sie müssen xp_cmdshell aktiviert haben, wenn nicht, führen Sie: sp_configure 'xp_cmdshell', '1' in SSMS auf Ihrem Server.

ein Geschäft Prozedur, erstellen und in den folgenden Code setzen:

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 

Dann über eine ADODB.Command die gespeicherte Prozedur von VB6, rufen.

Sie haben Beispiele hier:

Ich hoffe, es hilft.

0

Wahrscheinlich ist es am einfachsten, Shell und run dtexec

Alternativ können Sie use the using Microsoft.SqlServer.Dts assemblies in .NET und wickeln Sie es in COM (oder eine EXE-Datei) und dann von VB6 nennen.

Dieser zweite Link hat einige andere Optionen, die für VB6 in irgendeiner Weise gelten könnten, aber wahrscheinlich alle dazu führen würden, den .NET-Code in ein COM-Objekt oder eine EXE zu schreiben.