PDA

View Full Version : چگونه می توان DTS را با T-SQL پیاده سازی کرد ؟



Ehsani2006
چهارشنبه 15 اسفند 1386, 13:00 عصر
سلام خدمت اساتید :

من یک بانک Fox دارم که می خواهم اطلاعات اون هر وقت که کاربر خواست به بانک داخل Sql server به کمک یک DTS packages ارسال بشه . من این DTS رو ساختم اما میخوام به صورت کد T-SQL اونو داشته باشم که از طریق App اونو اجرا کنم .

با تشکر

AminSobati
چهارشنبه 15 اسفند 1386, 13:44 عصر
دوست عزیزم،
به کمک فایل DTSRUN.EXE میتونین آدرس Package رو بهش پاس کنین تا براتون اجرا کنه. فراخوانی این فایل EXE از طریق TSQL به کمک xp_cmdshell امکان پذیره

Elham_gh
چهارشنبه 15 اسفند 1386, 16:07 عصر
من یه Stored procedure که برای اجرای DTS برنامه ام نوشته بودم که کدش رو می ذارم که ازش استفاده کنید. این DTS نام فایل هایی را از کاربر می گیرد و سپس اطلاعات یکسری جداول رو در فایل Text ی به نام ، نامهای گرفته شده می ریزد. در این DTS از Global Varibale هم استفاده شده. این کد چند سال است که بی مشکل کار می کند.



CREATE PROCEDURE dbo.dtsPayRoll
-- Path And Name of Files
@Personel VARCHAR(50),
@working VARCHAR(50) ,
@pd VARCHAR(50),
@loan VARCHAR(50),
@jobplace VARCHAR(50)
--with encryption
as

SET NOCOUNT ON

DECLARE @pkg int, @rc int

--Create an instance of a DTS package
exec @rc = sp_OACreate 'DTS.Package', @pkg output

--Load the baby up
exec @rc = sp_OAMethod @pkg
,'LoadFromSQLServer'
,null
,@Servername = "(local)"
,@Flags =0
,@PackageName = "dtsPayRoll"
,@ServerUserName='sa'
,@ServerPassword='sa'

exec @rc = sp_OASetProperty @pkg
,'GlobalVariables ("gpersonel").Value'
,@Personel

exec @rc = sp_OASetProperty @pkg
,'GlobalVariables ("gworking").Value'
,@working

exec @rc = sp_OASetProperty @pkg
,'GlobalVariables ("gpd").Value'
,@pd

exec @rc = sp_OASetProperty @pkg
,'GlobalVariables ("gloan").Value'
,@loan


exec @rc = sp_OASetProperty @pkg
,'GlobalVariables ("gjobplace").Value'
,@jobplace

--do it
exec sp_OAMethod @pkg
,'Execute'

--destroy the instance
exec sp_OADestroy @pkg
GO