Como ejecutar un DTS desde programa.

Algunas veces uno requiere ejecutar DTS mediante programa, necesariamente debes instalar componentes apartes que lo único que logran es tener que incluirlos al momentos de llevarlos a producción u otro equipo de un usuario.
 
HAy una solución muy simple, dejar que SQL Server mediante un sp ejecute dicho DTS y no directamente desde programa.
 
Espero les siva dicho ejemplo:
 
CREATE PROCEDURE sp_EjecutarDTS(@Paquete varchar(500) )
As
   declare @Sql varchar(8000)
   Set @Sql = 'dtsrun /s (local) /e /n ' + @Paquete
   exec master.dbo.xp_cmdshell @Sql
Go

Comments

# re: Como ejecutar un DTS desde programa.

Thursday, September 08, 2005 12:13 PM by jvargas

Yo usaba esa forma de ejecucion de DTS's pero se me complicaba un poco la vida para la captura de errores desde el mismo stored que lo ejecutaba, en mi caso como la ejecucion de los DTSs formaba parte de todo un servicio de migración decidi hacer la ejecucion via codigo. y me funciono muy bien hasta ahora :D:

Dim appDTS As New Application()
Dim pkgDTS As New Package()
Dim varDTS As Variables

varDTS = pkgDTS.Variables
pkgDTS = appDTS.LoadPackage(strPackageName, Nothing)

pkgDTS.Execute()

If pkgDTS.ExecutionResult = DTSExecResult.Failure Then
''Error List
End If

Claro esto bajo .NET 2005, no se si hay el equivalente para version 2003.

Ivan Mostacero.

# re: Como ejecutar un DTS desde programa.

Friday, June 09, 2006 9:51 AM by Bustos José Manuel

Muchisimas Gracias jvargas, una gran ayuda en solo 5 lineas de codigo, muy bueno.
Todo es sensillo una vez que se sabe.
 
----
de nada estimado, para esto mismo lo publico... para que pueda usarlo.
Saludos,
Jhonny Vargas P.

# como ejecutar un store procedure desde .net

Saturday, June 24, 2006 4:06 PM by claudia

quisiera que alguien me diera un ejemplo de como llamar a un sp desde .net 2003

# re: Como ejecutar un DTS desde programa.

Monday, July 17, 2006 2:52 PM by MAXIMO HENRIQUEZ

MUCHAS GRACIAS POR TU APORTE COMPADRE... ESTOY CONSTRUYENDO MI SITIO WEB PARA DESARROLLOS EN .NET ,ASI QUE UN GUSTO SERIA QUE INTERCAMBIARAMOS RUTINAS O LO QUE PUEDAS NECESITAS MI SITIO ES WWW.MHOCHILE.COM , AUN ME FALTA SUBIR EL CONTENIDO PRINCIPAL, PERO ME GUSTARIA QUE PUDIERAMOS LINKEAR NUESTROS SITIOS.
 
 
----
De nada mi estimado, cualquier cosa estamos por estos lados.
Jhonny Vargas P.

# re: Como ejecutar un DTS desde programa.

Thursday, October 26, 2006 5:05 PM by omorenmalaver

tengo una inquietud, y es sobre el siguiente error cuando ejecuto el procedimiento almacenado DTSRun: Loading... DTSRun: Executing... DTSRun OnStart: DTSStep_DTSDataPumpTask_1 DTSRun OnError: DTSStep_DTSDataPumpTask_1, Error = -2147217887 (80040E21) Error string: Error opening datafile: The system cannot find the path specified. Error source: Microsoft Data Transformation Services Flat File Rowset Provider Help file: DTSFFile.hlp Help context: 0 Error Detail Records: Error: 3 (3); Provider Error: 3 (3) Error string: Error opening datafile: The system cannot find the path specified. Error source: Microsoft Data Transformation Services Flat File Rowset Provider Help file: DTSFFile.hlp Help context: 0 DTSRun OnFinish: DTSStep_DTSDataPumpTask_1 DTSRun: Package execution complete. cuando lo ejecuto directamente desde la consola del servidor, lo realiza correctamente, pero desde el procedimiento alamcenado genera error, no se que quera decir el error, pero lo ejecute en un sql server 2000 service pack 4 y funciona, pero al ejecutarlo en un sql 7 ni papa da eso, sera la version? quede peor que gringo recien llegado a mexico con este error, gracias

# re: Como ejecutar un DTS desde programa.

Wednesday, November 22, 2006 7:57 AM by daniel

buenos dias, tengo un problema al querer ejecutar un dts desde un sp en sql server 2000 bajo estas lineas

set @sAux = 'dtsrun /N PROCCESO_CARGA_IMP_CTI_ARG_PRUEBA /S ' + @@servername + ' /U sa /P "" /A shortcode = '+ @shortcode + ' /A comando = ' + @comando + ' /A fechadesde = ' +  @fecha_desde + '/A fecha_hasta = ' + @fecha_hasta

EXEC /*@estado =*/ master..xp_cmdshell @sAux--, --NO_OUTPUT      

el problema es que me dice que hay un erro en el logeo:

DTSRun OnStart:  DTSStep_DTSDataPumpTask_1

DTSRun OnError:  DTSStep_DTSDataPumpTask_1, Error = -2147467259 (80004005)

  Error string:  Error opening datafile: Logon failure: unknown user name or bad password.

  Error source:  Microsoft Data Transformation Services Flat File Rowset Provider

  Help file:  DTSFFile.hlp

  Help context:  0

Error Detail Records:

Error:  1326 (52E); Provider Error:  1326 (52E)

  Error string:  Error opening datafile: Logon failure: unknown user name or bad password.

  Error source:  Microsoft Data Transformation Services Flat File Rowset Provider

  Help file:  DTSFFile.hlp

  Help context:  0

DTSRun OnFinish:  DTSStep_DTSDataPumpTask_1

DTSRun:  Package execution complete

alguien que me pueda ayudar!!!?

# re: Como ejecutar un DTS desde programa.

Monday, November 27, 2006 6:56 PM by jvargas

Es un problema de permisos, antes que nada usa el usuario y trata de loguearte con el query analizer.

# re: Como ejecutar un DTS desde programa.

Sunday, December 17, 2006 6:20 AM by Baltasar Miralles Oliver

Buenos días:

Utilizo SQL SERVER 2000, Windows 2000 Profesional y Office 2000.

DTS puede ejecutar Transact-sql pero Transact-sql no puede ejecutar directamente un paquete DTS, aunque Transact-sql puede invocar xp_cmdshell para que ejecute dtsrun.

EXEC xp_cmdshell 'dtsrun /S netserver /N DTS_paquete /E'

Resultando el siguiente ERROR :

"dtsrun" no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable. NULL

Parece ser un problema de permisos o autenticación de Windows o de Sql Server, o de que DTS_paquete se ejecuta en el Servidor y no en el Cliente del Servidor, pero he probado infinidad de configuraciones de permisos en ambas instancias y no doy con la solución.

Bien entendido que 'dtsrun /S netserver /N DTS_paquete /E' en Paquete.bat, invocado mediante un shell desde un módulo Visual Basic desde un libro de Excel en un cliente del Servidor, funciona perfectamente.

Utilizo este proceso, sin problemas, para importar/refrescar en la base de datos del Servidor ciertos libros de Excel cada vez que son modificados (Salvados).

Sigo rebuscando el motivo del ERROR. Mientras, agradecería cualquier comentario al respecto.

Gracias y disponed en lo que pueda.

# re: Como ejecutar un DTS desde programa.

Friday, February 16, 2007 6:02 PM by Ernesto

Hola a todos, estoy desarrollando una aplicacion vb (dll) que ejecuta un DTS. mi problema es que en local si funciona, pero al llevarlo a otro equipo no lo hace, me marca el error "ActiveX component can't create object". estoy referenciando los archivos dtspkg.dll y dtspump.dll.  

¿requiero referenciar algunoa otra libreria ?,

es necesario tener instalado el sql en el otro equipo?

muchas gracias

# Definicion de Jobs en SQL 2005

Monday, March 19, 2007 10:58 AM by Armando Plaz

Jhonny, encontré este sitio a través de google, revisé algunos de tus comentarios y aportes a la comunidad de desarrolladores, y me parecieron muy buenos. Por esta razón decidí escribir y saber tu opinión acerca de un problema que estoy teniendo con la ejecución de los JOBS en SQL 2005.

Definí un Job en SQL 2005 para ejecutar un SSIS que ejecuta un DTS creado en 2000, y me está arrojando problemas de autenticación.

Cuando el Job ejecuta la tarea de correr el DTS 2000, se indica que éste no pudo se ejecutado por el usuario. Si se ejecuta el SSIS por fuera del job, se ejecuta perfecto.

Para asegurarme de no tener problemas con el Job, el dueño del job es "sa", y el SQL Agent se inicializa con la cuenta del administrador local del servidor.

De antemano, muchas gracias por tu ayuda.

Saludos,

Armando

# re: Como ejecutar un DTS desde programa.

Monday, April 02, 2007 10:01 AM by Mari

Hola tengo un error al ejecutar el procedimiento almacenado siguiendo tu ejemplo, lo unico que varia es que le estoy mandando parametros. el error que me sale es DTSRun:  Invalid switch: /A fdesde=@fechadesde El parßmetro no es correcto.

En el DTS tengo declaradas las variables globales fDesde y fHasta, el sp es el siguiente

CREATE PROCEDURE Historico_TxDTS(

@Paquete varchar(500),

@fechaDesde varchar(10),

@fechaHasta varchar(10)

)

As

declare @Sql varchar(8000)

Set @Sql = 'dtsrun /s Servidor /e /n ' + @Paquete + '/A "fDesde":"8"=' + @fechaDesde +' /A "fHata":"8"=' + @fechaHasta

exec MASTER.dbo.xp_cmdshell @Sql

Help me

# re: Como ejecutar un DTS desde programa.

Wednesday, April 11, 2007 9:03 AM by Xisco

Hola jvargas,

El código que has puesto para ejecutar un dstx parece que funciona pero yo no puedo ejecutarlo ya que siempre que lo intento me devuelve el siguiente error:

El nivel de producto es insuficiente para componente "Destino de SQL Server" (370).

¿alguién sabe que puede estar pasando?

Muchas gracias.

# re: Como ejecutar un DTS desde programa.

Tuesday, June 05, 2007 10:31 AM by Dervis

Hola, buenas tardes,

tengo problemas al intentar ejecutar un DTS en donde el origen de la informacion es una base de datos en Visual Fox Pro 7.0 y esta relacionada a traves de un Origen de Datos (Microsoft OLE DB Provider for ODBC Drivers)

El error que me da es el siguiente

DTSRun OnError: Copy Data from bancos to [Conce].[dbo].[bancos] Paso, Error = -2147467259 (80004005)

  Cadena de error:  [Microsoft][Administrador de controladores ODBC] No se encuentra el nombre del origen de datos y no se especificó ningún controlador predeterminado

  Origen del error:  Microsoft OLE DB Provider for ODBC Drivers

  Archivo de Ayuda:  

  Contexto de la Ayuda:  0

Por favor, agradeceria mucho si me pueden orientar para resolver este problema... :D

# re: Como ejecutar un DTS desde programa.

Friday, June 08, 2007 12:23 AM by Sabas

Deseo ejecutar un DTS dese .net 2003

con sql2000

por favor si alguen me puede ayadar

# re: Como ejecutar un DTS desde programa.

Monday, June 18, 2007 1:54 PM by rubi

Hola,

Tengo un Paquete DTS con un Dynamic Properties Task para actualizar unas variables globales leidas desde un fichero. Cuando lo ejecuto desde adentro del paquete todo OK pero desde afuera no me da ningún error pero no se actualizan las variables. He probado con DTSRun y desde .net y nada, incluso desde fuera del paquete en la consola MMC tampoco.

Alguien pudiera ayudarme a solucionar este problema?

Gracias

# re: Como ejecutar un DTS desde programa.

Tuesday, July 17, 2007 1:11 PM by Rodrigo

Como puedo cargar el el SQL Server un DTS que tengo en fichero (file.dts)??

# re: Como ejecutar un DTS desde programa.

Wednesday, August 22, 2007 1:44 PM by Roberto

Alguien sabe como ejecutar un DTS desde un SHELL de UNIX?

# re: Como ejecutar un DTS desde programa.

Friday, August 24, 2007 10:57 AM by Adry

Hola

Alguien puede decirme como saco un backup de un DTS para pasarlo para otro equipo?? Gracias..

# re: Como ejecutar un DTS desde programa.

Friday, August 24, 2007 1:06 PM by a b

Alguien de casualidad sabe como ejecutar un Stored Procedure (SP) de sql desde un archivo .bat???

es que no me funciona en un job, pero en el analizer lo ejecuta de forma estupenda.

Gracias

# re: Como ejecutar un DTS desde programa.

Thursday, August 30, 2007 8:27 AM by marcos

si tienes alguna tips para ejecutar un dts desde visual foxpro me interesaria conocerlo....muchas gracias. marcos pavon

# re: Como ejecutar un DTS desde programa.

Monday, September 24, 2007 11:58 AM by Raul

Muchas gracias, la informacion esta muy buena y muy clara de entender.... tenia unas nociones de como se creaba este Stored, pero aun me quedaban dudas... excelente pagina.. sigue asi, que a muchos nos ayudas con esta informacion

# re: Como ejecutar un DTS desde programa.

Thursday, October 11, 2007 10:29 AM by Marcelo

Al comienzo de la página tu decís "necesariamente debes instalar componentes aparte", cuales son estos componentes?

Desde el vb 2005 no cuento con la clase Microsoft.sqlServer.dts.runtime que creo que es donde se encuentre Package

# re: Como ejecutar un DTS desde programa.

Thursday, November 22, 2007 4:49 PM by Yuqui

Hi una consulta? bueno eh encntrado una forma de ejecutar un dts:

Dim dtsp As New DTS.Package

   dtsp.LoadFromSQLServer _

       ServerName:="servername", _

       ServerUserName:="usuario", _

       ServerPassword:="contraseña", _

       PackageName:="DTSDemo"

   dtsp.Execute

y bueno si funciona pero si por ejemplo quiero personalizarlo darle la ruta de un archivo especifico como puedo hacer eso ?

# re: Como ejecutar un DTS desde programa.

Tuesday, December 18, 2007 3:28 AM by César Vallejo

Hola, muy buena tu información, pero la interrogante es: es tan fácil ejecutar un dts desde un programa, con tan solo llamar a un SP, que muchos sabemos, pero... cual es la otra manera que dices, que es muy larga, llamandola desde un programa, que sea el programa (ejemplo: Leng. Visual Basic) quien ejecute el DTS directamente.               Saludos.

César Vallejo - Lima-Perú

# re: Como ejecutar un DTS desde programa.

Saturday, December 29, 2007 9:57 AM by JAS

He hecho un DTSX pero necesito ejecutar un SP el cual le envío un parametro pero no lo hace es como si el contenido de la variable se perdiera, a pesar que la variable la tengo declarada en la opción correspondiente, y es que en el SCRIPT cuando envío un msgbox del contenido de la variable me lo muestra , pero al ejecutar el objeto para ejecutar el SP no hace nada. Cuando ejecuto el SP por fuera si funciona correctamente.

Quisiera que me den una ayuda sobre este tema ya que es un poco dificil encontrar temas relacionados sobre sql 2005 y el dtsx.

Gracias

# re: Como ejecutar un DTS desde programa.

Monday, January 07, 2008 10:34 AM by Gabriel

Saludos a todos.

Alguno conocerá una forma para mandar llamar y ejecutar un DTS desde Excel con VB for Applications?

Les agradezco.

# re: Como ejecutar un DTS desde programa.

Friday, January 18, 2008 1:32 PM by Ronny Gómez

Buenas tardes,

Con respecto a este error te digo es que lo más seguro es que el usuario que estás usando para ejecutar el dts no posee permisos suficientes. Yo utilizo este para que los usuarios suban reportes que se encuentran en dts pero tuve que crear un usuario de base de datos especial para realizar esta tarea.

Saludos,

Ronny Gómez

Buenos días:

Utilizo SQL SERVER 2000, Windows 2000 Profesional y Office 2000.

DTS puede ejecutar Transact-sql pero Transact-sql no puede ejecutar directamente un paquete DTS, aunque Transact-sql puede invocar xp_cmdshell para que ejecute dtsrun.

EXEC xp_cmdshell 'dtsrun /S netserver /N DTS_paquete /E'

Resultando el siguiente ERROR :

"dtsrun" no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable. NULL

Parece ser un problema de permisos o autenticación de Windows o de Sql Server, o de que DTS_paquete se ejecuta en el Servidor y no en el Cliente del Servidor, pero he probado infinidad de configuraciones de permisos en ambas instancias y no doy con la solución.

Bien entendido que 'dtsrun /S netserver /N DTS_paquete /E' en Paquete.bat, invocado mediante un shell desde un módulo Visual Basic desde un libro de Excel en un cliente del Servidor, funciona perfectamente.

Utilizo este proceso, sin problemas, para importar/refrescar en la base de datos del Servidor ciertos libros de Excel cada vez que son modificados (Salvados).

Sigo rebuscando el motivo del ERROR. Mientras, agradecería cualquier comentario al respecto.

Gracias y disponed en lo que pueda.

# re: Como ejecutar un DTS desde programa.

Tuesday, January 29, 2008 5:06 PM by Cmendez

Buenas tardes, utilizo SQL SERVER 2000 y necesito realizar un Job que como primer paso me active un SP y como segundo paso un DTS, mi preguntas es que command utilizo para correr el DTS?

saludos, y muchas gracias por sus comentarios

# re: Como ejecutar un DTS desde programa.

Thursday, February 07, 2008 11:14 AM by Ricardo

Me sale este error. el dts en el diseñador corre bien pero cuando lo quiero correr atravez de un store no funca, es mas ya uso en el analizador con la siguiente query y me sale este error pes

execute master.dbo.xp_cmdshell  'dtsrun /s (local) /e  /n  DTS_Nombre';

si alguien me puede ayudar estare muy agradecido xD

rlaines@student-partners.com

DTSRun:  Loading...

DTSRun:  Executing...

DTSRun OnStart:  DTSStep_DTSActiveScriptTask_1

DTSRun OnFinish:  DTSStep_DTSActiveScriptTask_1

DTSRun OnStart:  DTSStep_DTSDynamicPropertiesTask_1

DTSRun OnFinish:  DTSStep_DTSDynamicPropertiesTask_1

DTSRun OnStart:  DTSStep_DTSDataPumpTask_2

DTSRun OnStart:  DTSStep_DTSDataPumpTask_1

DTSRun OnError:  DTSStep_DTSDataPumpTask_2, Error = -2147467259 (80004005)

  Error string:  Error opening datafile: Access is denied.

  Error source:  Microsoft Data Transformation Services Flat File Rowset Provider

  Help file:  DTSFFile.hlp

  Help context:  0

Error Detail Records:

Error:  5 (5); Provider Error:  5 (5)

  Error string:  Error opening datafile: Access is denied.

  Error source:  Microsoft Data Transformation Services Flat File Rowset Provider

  Help file:  DTSFFile.hlp

  Help context:  0

DTSRun OnFinish:  DTSStep_DTSDataPumpTask_2

DTSRun OnError:  DTSStep_DTSDataPumpTask_1, Error = -2147467259 (80004005)

  Error string:  Error opening datafile: Access is denied.

  Error source:  Microsoft Data Transformation Services Flat File Rowset Provider

  Help file:  DTSFFile.hlp

  Help context:  0

Error Detail Records:

Error:  5 (5); Provider Error:  5 (5)

  Error string:  Error opening datafile: Access is denied.

  Error source:  Microsoft Data Transformation Services Flat File Rowset Provider

  Help file:  DTSFFile.hlp

  Help context:  0

DTSRun OnFinish:  DTSStep_DTSDataPumpTask_1

DTSRun OnStart:  DTSStep_DTSSendMailTask_2

DTSRun OnError:  DTSStep_DTSSendMailTask_2, Error = -2147220352 (80040480)

  Error string:  Logon failed: The MAPI Call failed.

  Error source:  Microsoft Data Transformation Services (DTS) Package

  Help file:  sqldts80.hlp

  Help context:  9100

Error Detail Records:

Error:  -2147220352 (80040480); Provider Error:  0 (0)

  Error string:  Logon failed: The MAPI Call failed.

  Error source:  Microsoft Data Transformation Services (DTS) Package

  Help file:  sqldts80.hlp

  Help context:  9100

DTSRun OnFinish:  DTSStep_DTSSendMailTask_2

DTSRun:  Package execution complete.

NULL

# re: Como ejecutar un DTS desde programa.

Friday, February 15, 2008 1:48 PM by Jorge

Buenas tango el siguiente problema: estoy trabajando con un programita en visual basic este se conecta a una base de datos sql 2005 alli tengo un ssis que ne trae unos datos de otra base de datos lo que necesito es poder llamar al ssis desde visual si alguien lo sabe se los agradeceria...

      Muchas gracias...

# re: Como ejecutar un DTS desde programa.

Thursday, March 06, 2008 10:33 AM by JJ

Menos mal que existen los foros....

Me gustaría saber si algún cerebrito sabría como llamar a un .dtsx, el cuál tiene varios flujos de datos, para poder enviarle desde por ejemplo visual basic 2005 la orden de ejecutación del .dtsx y por parámetro el nombre del flujo de datos.

Saludos foreros....

# re: Como ejecutar un DTS desde programa.

Tuesday, March 11, 2008 2:40 PM by jvargas

La mayoría de los problemas al ejecutar este programa es debido a los permisos del usuario que ejecuta el código.

# re: Como ejecutar un DTS desde programa.

Tuesday, March 18, 2008 6:45 PM by jaime

saludos me parese muy interesante este tema soy principiante y me gustaria que pudieran explicar a un nivel mas bajo osea como crear un dts y luejo como ejecutarlo desde vb

# re: Como ejecutar un DTS desde programa.

Thursday, March 27, 2008 4:10 AM by Marta

Buenos Días,

estoy tratando de ejecutar un DTS desde Excel (con VBA) y me sale este error "Microsoft Office Excel is waiting for another application to complete an OLE action". El DTS dura unos 25 minutos y parece ser que se acaba ejecutando después de darle varias veces a "OK" cuando aparece el mensaje.

Alguna solución a este problema?

Por otro lado, como esta hoja Excel va a ser para un usuario poco técnico, conocéis alguna forma de que salga una pantalla que diga algo como "En porceso" y cuando haya terminado diga "Terminado"? O alguna alerta de algún tipo?. He estado mirando en el foro y lo 'unico parecido es lo que pone jvargas

"If pkgDTS.ExecutionResult = DTSExecResult.Failure Then

''Error List

End If "

Muchas gracias por vuestra ayuda

# re: Como ejecutar un DTS desde programa.

Monday, April 14, 2008 5:11 PM by M@rty

--------------------------------------------------------

DTSRun:  Loading...

Error:  -2147217900 (80040E14); Provider Error:  14262 (37B6)

  Error string:  The specified DTS Package ('Name = 'PKG_PACE_A'; ID.VersionID =  {[not specified]}.{[not specified]}') does not exist.

  Error source:  Microsoft OLE DB Provider for SQL Server

  Help file:  

  Help context:  0

NULL

-------------------------------------------------------

me aparece este error como puedo solucionarlo

# re: Como ejecutar un DTS desde programa.

Saturday, April 26, 2008 10:31 PM by Erick

alguien por favor me puede ayuda como hago nose como empezar pero es a nivel solo de codigo

el problema es esta

ES SOBRE COMO EJECUTAR UN PAQUETE DESDE VISUAL BASIC Y POWER BUILDE EN SQL SERVER 2000 Y SQL SERVER 2005

# re: Como ejecutar un DTS desde programa.

Friday, May 09, 2008 5:49 PM by Sergio

una consulta saben probes todo lo que decian y nada como resultado, tengo un dts simple sin valores a pasarles

desde un SP y xp_cmdshell

y me contesta que no exite el SP xp_cmdshell en master verifique y efectivamente no esta hay alguna otra solucion que puedo hacer

es una pagina web en asp y espero que me ejecute el dts carga_gestion_robotica

Muchas gracias

si necesitan algo por favor avisenme y espero que me puedan ayudar

Sergio Madariaga

# re: Como ejecutar un DTS desde programa.

Saturday, May 31, 2008 6:31 AM by Jorge

Prueben esto ejecutando dts desde SP con tratamiento de errores, a mi me funciona sin problemas:

/*

Este procedimiento permite ejecutar un DTS

*/

CREATE PROC Ejecuta_DTS

@NombreDTS varchar(255) = '', -- Es el nombre del DTS, ejemplo. my_dts

@Servidor varchar(255) = '(local)', -- Es el servidor, (local) por defecto

@PassServidor varchar(255) = Null, -- Es el password, si no ingresa nada sera null

@IntSecurity bit = 1, -- integrated security, 1=True, 0=False

@PassDTS varchar(255) = '' -- Es el Password del DTS, si lo tiene.

AS

IF @NombreDTS = ''

BEGIN

PRINT '*** Debe ingresar el nombre del DTS ***'

RETURN 1

END

SET NOCOUNT ON

/*

Estos son los codigos de error que se retornan.

- 0 El DTS a terminado con exito

- 1 Error

- 9 El DTS a fallado

*/

DECLARE @Error int, @oPaquete int, @Comando varchar(1000)

-- Creo una instancia del objeto

EXEC @Error = sp_OACreate 'DTS.Package', @oPaquete

OUTPUT

IF @Error <> 0 -- Si no es correcto

BEGIN

PRINT '*** Ha fallado la creacion del objeto ***'

RETURN 1

END

-- Inicializo la variable para cargar el paquete

SET @Comando = 'LoadFromSQLServer("' + @Servidor+'", "", "", 256, "' + @PassDTS + '", , , "' + @NombreDTS+ '")'

EXEC @Error = sp_OAMethod @oPaquete, @Comando, NULL

IF @Error <> 0 -- Si no es correcto

BEGIN

PRINT '*** La carga del DTS a fallado ***'

RETURN 1

END

-- Ejecuta el Paquete

EXEC @Error = sp_OAMethod @oPaquete, 'Execute'

IF @Error <> 0 --Si no es correcto

BEGIN

PRINT '*** La ejecucion del DTS a fallo *** '

RETURN 1

END

-- Terminar la inicializacion el Paquete

EXEC @Error = sp_OAMethod @oPaquete, 'UnInitialize'

IF @Error <> 0

BEGIN

PRINT '*** No se pudo detener el paquete ***'

RETURN 1

END

-- Destruir la instancia para el paquete

EXEC @Error = sp_OADestroy @oPaquete

IF @Error <> 0

BEGIN

PRINT '*** No se pudo destruir la instancia ***'

RETURN 1

END

GO

Y lo llaman de la siguiente manera :

execute Ejecuta_DTS 'nombre_dts','nombre_servidor','password_servidor','integrated_security(1=true,0=false)','paswword_dts'

Si alguno de estos parámetros no lo usan, lo dejan en blanco ''

SALUDOS

# re: Como ejecutar un DTS desde programa.

Thursday, June 05, 2008 5:17 PM by marina

hola, yo tengo que pasar datos de una base oracle a una sql, para eso usé el DTS y creé una archivo .DTS y un .bat que corre el DTS, eso funciona bien, el tema es que estoy creando el .dts configuràndole un servidor de origen y uno de destino. Pero luego lo voy a tener que ejecutar apuntando a otros servidores destinos ( el servidor origen es siempre el mismo) quiero saber como se puede configurar para que yo cambie en el .bat el destino y pueda correrlo en distintos servidores destinos

# re: Como ejecutar un DTS desde programa.

Wednesday, October 22, 2008 12:46 PM by diego harasic

Hola!

Una pregunta... es necesario hacer un Imports de alguna clase, verdad?

Cuando pego en mi formulario el codigo que copio, me lo subraya en azul mi VB2005....

Leave a Comment

(required) 
(required) 
(optional)
(required)