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
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.