PDA

View Full Version : اجرای یک DTS Package در #C



hmdkarimi
شنبه 28 مرداد 1385, 07:40 صبح
چه طوری میشه یک DTS Package رو به صورت مخفی اجرا کنیم

یعنی هنگامی که از طریق برنامه DTS Package رو اجرا کردیم ، صفحه Command Prompt دیده نشود

در #C برای این منظور باید چه کار کرد ؟؟؟

majid_afra222
شنبه 28 مرداد 1385, 07:53 صبح
سلام
نحوه فراخوانیت رو بنویس.

hmdkarimi
دوشنبه 30 مرداد 1385, 12:32 عصر
سلام
نحوه فراخوانیت رو بنویس.



System.Diagnostics.Process.Start(@"C:\Program Files\Microsoft SQL Server\80\Tools\Binn\DTSRun", /S "(local)" /N ("TBL_MAIN" /G "{195254E0-9AH4-450F-907C-1E7598C0379D}" /E

whitehat
دوشنبه 30 مرداد 1385, 13:42 عصر
یک راه حل که من برای این کار دارم اینه که همین فرمان را در یک SP ببرم و از طریق برنامه هر مقداری خوستم به آن پاس بدم البته شاید برای شما راه حل بهینه نباشه ولی عملی هست. در یک SP کد زیر را اضافه کنید


exec master..xp_cmdshell 'dtsrun /sServer /uYourUsername /pYourPassword /nYourDTSPackageName'

majid_afra222
دوشنبه 30 مرداد 1385, 15:06 عصر
سلام
خوشبختانه حداقل BOL وجود داره :


Private WithEvents mobjPkgEvents As DTS.Package
. . .
Private Sub RunPackage()
'Run the package stored in file C:\DTS_UE\TestPkg\VarPubsFields.dts.
Dim objPackage As DTS.Package2
Dim objStep As DTS.Step
Dim objTask As DTS.Task
Dim objExecPkg As DTS.ExecutePackageTask

On Error GoTo PackageError
Set objPackage = New DTS.Package
Set mobjPkgEvents = objPackage
objPackage.FailOnError = True

'Create the step and task. Specify the package to be run, and link the step to the task.
Set objStep = objPackage.Steps.New
Set objTask = objPackage.Tasks.New("DTSExecutePackageTask")
Set objExecPkg = objTask.CustomTask
With objExecPkg
.PackagePassword = "user"
.FileName = "C:\DTS_UE\TestPkg\VarPubsFields.dts"
.Name = "ExecPkgTask"
End With
With objStep
.TaskName = objExecPkg.Name
.Name = "ExecPkgStep"
.ExecuteInMainThread = True
End With
objPackage.Steps.Add objStep
objPackage.Tasks.Add objTask

'Run the package and release references.
objPackage.Execute

Set objExecPkg = Nothing
Set objTask = Nothing
Set objStep = Nothing
Set mobjPkgEvents = Nothing

objPackage.UnInitialize
End Sub



البته من قبلا با دلفی کد کردم و درست هم بوده.
آدرس
DTS packages, executing packages در BOL