MSMVPS.COM
The Ultimate Destination for Blogs by Current and Former Microsoft Most Valuable Professionals.

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

Posted Wed, Aug 31 2005 18:18 by jvargas

Comments

jvargas wrote re: Como ejecutar un DTS desde programa.
on Thu, Sep 8 2005 12:13
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.
Bustos José Manuel wrote re: Como ejecutar un DTS desde programa.
on Fri, Jun 9 2006 9:51
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.
claudia wrote como ejecutar un store procedure desde .net
on Sat, Jun 24 2006 16:06
quisiera que alguien me diera un ejemplo de como llamar a un sp desde .net 2003
MAXIMO HENRIQUEZ wrote re: Como ejecutar un DTS desde programa.
on Mon, Jul 17 2006 14:52
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.
omorenmalaver wrote re: Como ejecutar un DTS desde programa.
on Thu, Oct 26 2006 17:05
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
daniel wrote re: Como ejecutar un DTS desde programa.
on Wed, Nov 22 2006 7:57

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!!!?

jvargas wrote re: Como ejecutar un DTS desde programa.
on Mon, Nov 27 2006 18:56

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

Baltasar Miralles Oliver wrote re: Como ejecutar un DTS desde programa.
on Sun, Dec 17 2006 6:20

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.

Ernesto wrote re: Como ejecutar un DTS desde programa.
on Fri, Feb 16 2007 18:02

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

Armando Plaz wrote Definicion de Jobs en SQL 2005
on Mon, Mar 19 2007 10:58

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

Mari wrote re: Como ejecutar un DTS desde programa.
on Mon, Apr 2 2007 10:01

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

Xisco wrote re: Como ejecutar un DTS desde programa.
on Wed, Apr 11 2007 9:03

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.

Dervis wrote re: Como ejecutar un DTS desde programa.
on Tue, Jun 5 2007 10:31

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

Sabas wrote re: Como ejecutar un DTS desde programa.
on Fri, Jun 8 2007 0:23

Deseo ejecutar un DTS dese .net 2003

con sql2000

por favor si alguen me puede ayadar

rubi wrote re: Como ejecutar un DTS desde programa.
on Mon, Jun 18 2007 13:54

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

Rodrigo wrote re: Como ejecutar un DTS desde programa.
on Tue, Jul 17 2007 13:11

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

Roberto wrote re: Como ejecutar un DTS desde programa.
on Wed, Aug 22 2007 13:44

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

Adry wrote re: Como ejecutar un DTS desde programa.
on Fri, Aug 24 2007 10:57

Hola

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

a b wrote re: Como ejecutar un DTS desde programa.
on Fri, Aug 24 2007 13:06

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

marcos wrote re: Como ejecutar un DTS desde programa.
on Thu, Aug 30 2007 8:27

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

Raul wrote re: Como ejecutar un DTS desde programa.
on Mon, Sep 24 2007 11:58

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

Marcelo wrote re: Como ejecutar un DTS desde programa.
on Thu, Oct 11 2007 10:29

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

Yuqui wrote re: Como ejecutar un DTS desde programa.
on Thu, Nov 22 2007 16:49

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 ?

César Vallejo wrote re: Como ejecutar un DTS desde programa.
on Tue, Dec 18 2007 3:28

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ú

JAS wrote re: Como ejecutar un DTS desde programa.
on Sat, Dec 29 2007 9:57

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

Gabriel wrote re: Como ejecutar un DTS desde programa.
on Mon, Jan 7 2008 10:34

Saludos a todos.

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

Les agradezco.

Ronny Gómez wrote re: Como ejecutar un DTS desde programa.
on Fri, Jan 18 2008 13:32

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.

Cmendez wrote re: Como ejecutar un DTS desde programa.
on Tue, Jan 29 2008 17:06

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

Ricardo wrote re: Como ejecutar un DTS desde programa.
on Thu, Feb 7 2008 11:14

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

Jorge wrote re: Como ejecutar un DTS desde programa.
on Fri, Feb 15 2008 13:48

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...

JJ wrote re: Como ejecutar un DTS desde programa.
on Thu, Mar 6 2008 10:33

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....

jvargas wrote re: Como ejecutar un DTS desde programa.
on Tue, Mar 11 2008 14:40

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

jaime wrote re: Como ejecutar un DTS desde programa.
on Tue, Mar 18 2008 18:45

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

Marta wrote re: Como ejecutar un DTS desde programa.
on Thu, Mar 27 2008 4:10

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

M@rty wrote re: Como ejecutar un DTS desde programa.
on Mon, Apr 14 2008 17:11

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

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

Erick wrote re: Como ejecutar un DTS desde programa.
on Sat, Apr 26 2008 22:31

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

Sergio wrote re: Como ejecutar un DTS desde programa.
on Fri, May 9 2008 17:49

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

Jorge wrote re: Como ejecutar un DTS desde programa.
on Sat, May 31 2008 6:31

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

marina wrote re: Como ejecutar un DTS desde programa.
on Thu, Jun 5 2008 17:17

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

diego harasic wrote re: Como ejecutar un DTS desde programa.
on Wed, Oct 22 2008 12:46

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....

Adriana wrote re: Como ejecutar un DTS desde un Job en SQL Server 2000.
on Thu, Dec 4 2008 8:36

Hola, me parece buenísimo el foro y me gustaría que alguien me apoyara con la siguiente duda.

¿Cómo puedo ejecutar un DTS desde un Trabajo? en el Agente de SQL.

MIG wrote re: Como ejecutar un DTS desde programa.
on Wed, Jan 7 2009 6:06

Hola,

Como ha hecho Marina (Thursday, June 05, 2008 5:17 PM by marina , tengo que ejecutar un DTS desde un .bat.

¿Cómo es el código del bat para lanzar un DTS del SQL2000?

Muchas gracias!

Gil_cuevas wrote Como ejecutar un DTS desde programa.
on Fri, Sep 4 2009 14:58

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

Presento este problema y no hallo como solucionarlo, por favor agradecería si me dicen aunque sea un pequela linea de código.

Gracias

JULIAN wrote re: Como ejecutar un DTS desde programa.
on Wed, May 26 2010 16:06

Esto me funciona para 2005  pero para 2008?

tengo el paquete en 2008  y los servivios en 2005 y me esta saliendo este error The version number in the package is not valid. The version number cannot be greater than current version number. uds saben como puedo slucionar este problema?

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

Anonymous wrote re: Como ejecutar un DTS desde programa.
on Wed, May 26 2010 16:08

como puedo solucionar  esto The version number in the package is not valid. The version number cannot be greater than current version number.

mi paquete esta en 2008 y mi servicios esta en 2005  

ya use

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

Hernan wrote re: Como ejecutar un DTS desde programa.
on Wed, Nov 24 2010 15:30

Excelente tu aporte mi estimado

Angelo wrote re: Como ejecutar un DTS desde programa.
on Thu, Dec 9 2010 16:23

donde debe estar mi paquete para usar esta funcion

spercy wrote re: Como ejecutar un DTS desde programa.
on Fri, Dec 17 2010 9:27

hola a todos tengo el siguiente problema.

tengo un dts desarrollado en sqlserver 2005 el cual tiene varibles globales

desde vb net 2005 ejecuto la llamada al dts pasandole las variables al dts, pero

no funciona correctamente, el mensaje de error es el siguiente .

El tipo de conexión "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=DBESTABILIDAD;Data Source=ACSERVER6" especificada para el administrador de conexión "{2FF6FD86-5581-4A70-A895-5AEF3114E6B3}" no se reconoce como un tipo de administrador de conexión válido. Este error se devuelve cuando se intenta crear un administrador de conexión para un tipo de conexión desconocido. Compruebe la ortografía del nombre del tipo de conexión.

el codigo del formulario es el siguiente

Private Sub Bto_Procesar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bto_Procesar.Click

       Dim pkgLocation As String

       Dim pkg As New Package

       Dim app As New Application

       Dim pkgResults As DTSExecResult

       Try

           pkgLocation = "R:\DTS\Paquete SSIS - SAP_EXTRACT_QM.dtsx"

           pkg = app.LoadPackage(pkgLocation, Nothing)

           pkg.Variables("Material").Value = "4000000015"

           pkg.Variables("Lote").Value = "1030400"

           pkg.Variables("Fecha_Analisis_Ini").Value = "01/01/2010"

           pkg.Variables("Fecha_Analisis_Fin").Value = "01/12/2010"

           rem aqui se pasa la conexion, en esta parte ocurre el error

           pkg.Connections.Add("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security  

                   Info=False;"User ID=sa;Initial Catalog=DBESTABILIDAD;Data Source=ACSERVER6")

           pkgResults = pkg.Execute(pkg.Connections, pkg.Variables, Nothing, Nothing, Nothing)

       Catch ex As Exception

           MsgBox(ex.Message)

       End Try

   End Sub

si alguien tiene otra manera de hacer esto y quiere compartirla, agradeceria mucho su ayuda.

Add a Comment

(optional)  
(optional)
(required)  
Remember Me?
If you can't read this number refresh your screen
Enter the numbers above: