Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

DTS en Stored Procedure

Estas en el tema de DTS en Stored Procedure en el foro de SQL Server en Foros del Web. Hola amigos del foro. Les comento mi problema, resulta que estoy ejecutando un DTS desde un SP, el DTS toma datos de una base Access ...
  #1 (permalink)  
Antiguo 08/09/2011, 10:14
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Pregunta DTS en Stored Procedure

Hola amigos del foro.

Les comento mi problema, resulta que estoy ejecutando un DTS desde un SP, el DTS toma datos de una base Access y los Copia en una Base SQL Server.

Si ejecuto el DTS directamente funciona, pero si lo hago desde el SP me arroja el siguiente error.



DTSRun: Loading...
DTSRun: Executing...
DTSRun OnStart: DTSStep_DTSExecuteSQLTask_1
DTSRun OnStart: DTSStep_DTSDataPumpTask_1
DTSRun OnError: DTSStep_DTSDataPumpTask_1, Error = -2147467259 (80004005)
Error string: The Microsoft Jet database engine cannot open the file '\\srvtx-01ap03\d$\Shared\Datos\Bases\Maestros.mdb'. It is already opened exclusively by another user, or you need permission to view its data.
Error source: Microsoft JET Database Engine
Help file:
Help context: 5003051



Este es el SP:

CREATE PROCEDURE dbo.xxx_dtsImportacionArticulos

AS

DECLARE @result int



EXEC @result = master.dbo.xp_cmdshell 'dtsrun /S SRVTX-01AP03 /E /N DTS Importacion XXX_MaeArticulos Access a XXX_MaeArticulos SQL'

IF (@result = 0)
PRINT 'OK'
ELSE
PRINT 'Error en DTS'
GO


Espero puedan ayudarme
Saludos!!
  #2 (permalink)  
Antiguo 08/09/2011, 11:54
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: DTS en Stored Procedure

Este error es de ACCESS y no de SQL Server
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 08/09/2011, 13:37
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: DTS en Stored Procedure

Gracias iislas, mira me suena raro que cuando ejecuto el DTS de manera directa este error no me lo tire, pero a traves del SP si.
  #4 (permalink)  
Antiguo 08/09/2011, 14:36
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: DTS en Stored Procedure

Si ejecutas esto en tu analizador de consultas:

DECLARE @result int

EXEC @result = master.dbo.xp_cmdshell 'dtsrun /S SRVTX-01AP03 /E /N DTS Importacion XXX_MaeArticulos Access a XXX_MaeArticulos SQL'

¿Te funciona?
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 09/09/2011, 07:00
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: DTS en Stored Procedure

iislas corri lo que me pasaste en el analizador cambie el nombre del DTS.

DECLARE @result int

EXEC @result = master.dbo.xp_cmdshell 'dtsrun /S srvtx-01ap03 /E /N DTS Importación Access-SQL Server Maquina/Operacion'

Y me arroja el siguiente error.


DTSRun: Loading...
DTSRun: Executing...
DTSRun OnStart: DTSStep_DTSExecuteSQLTask_1
DTSRun OnStart: DTSStep_DTSDataPumpTask_2
DTSRun OnFinish: DTSStep_DTSExecuteSQLTask_1
DTSRun OnStart: DTSStep_DTSDataPumpTask_1
DTSRun OnError: DTSStep_DTSDataPumpTask_2, Error = -2147467259 (80004005)
Error string: 'P:\Bases\Maestros.mdb' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.
Error source: Microsoft JET Database Engine
Help file:
Help context: 5003044
  #6 (permalink)  
Antiguo 09/09/2011, 07:03
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: DTS en Stored Procedure

Cita:
Iniciado por potus Ver Mensaje
iislas corri lo que me pasaste en el analizador cambie el nombre del DTS.

DECLARE @result int

EXEC @result = master.dbo.xp_cmdshell 'dtsrun /S srvtx-01ap03 /E /N DTS Importación Access-SQL Server Maquina/Operacion'

Y me arroja el siguiente error.


DTSRun: Loading...
DTSRun: Executing...
DTSRun OnStart: DTSStep_DTSExecuteSQLTask_1
DTSRun OnStart: DTSStep_DTSDataPumpTask_2
DTSRun OnFinish: DTSStep_DTSExecuteSQLTask_1
DTSRun OnStart: DTSStep_DTSDataPumpTask_1
DTSRun OnError: DTSStep_DTSDataPumpTask_2, Error = -2147467259 (80004005)
Error string: 'P:\Bases\Maestros.mdb' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.
Error source: Microsoft JET Database Engine
Help file:
Help context: 5003044
Lo raro es que me habla de este PATH "P:\Bases\Maestros.mdb" que es el correcto, pero que yo no lo ingreso en la consulta, pongo el servidor directamente "srvtx-01ap0"
  #7 (permalink)  
Antiguo 09/09/2011, 07:27
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: DTS en Stored Procedure

Cita:
Iniciado por potus Ver Mensaje
Lo raro es que me habla de este PATH "P:\Bases\Maestros.mdb" que es el correcto, pero que yo no lo ingreso en la consulta, pongo el servidor directamente "srvtx-01ap0"
Cambie la ruta en la coneccion del DTS, ahi si decia "P:\Bases\Maestros.mdb" ya que la habia indicado a traves del disco de red "P".
Lo cambie por la ruta absoluta "\\srvtx-01ap03\Datos\Bases\Maestros.mdb"
Y ahora me arrojo este error nuevamente.


DTSRun: Loading...
DTSRun: Executing...
DTSRun OnStart: DTSStep_DTSExecuteSQLTask_1
DTSRun OnStart: DTSStep_DTSDataPumpTask_2
DTSRun OnError: DTSStep_DTSDataPumpTask_2, Error = -2147467259 (80004005)
Error string: The Microsoft Jet database engine cannot open the file '\\srvtx-01ap03\Datos\Bases\Maestros.mdb'. It is already opened exclusively by another user, or you need permission to view its data.
Error source: Microsoft JET Database Engine
Help file:
Help context: 5003051

Error Detail Records:
  #8 (permalink)  
Antiguo 09/09/2011, 09:38
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: DTS en Stored Procedure

Es indicativo de que la base Access esta siendo utilizada por uno o mas usuarios, ¿es correcto?
__________________
MCTS Isaias Islas
  #9 (permalink)  
Antiguo 09/09/2011, 15:00
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: DTS en Stored Procedure

Debes revisar que usuario esta arrancando lo servicios de SQL Server y Agent, tal vez ese usuario, no tenga los permisos suficientes para acceder a tu base de access
__________________
MCTS Isaias Islas
  #10 (permalink)  
Antiguo 12/09/2011, 07:20
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
De acuerdo Respuesta: DTS en Stored Procedure

Si la base esta siendo usada por uno o mas usuarios eso es cierto.
Y tal vez aya que cambiar algo referido a los permisos de usuario desde Access.
Resulta extraño que el DTS no tire esos problemas cuando se ejecuta sin el SP de por medio.
No quiero tocar nada con respecto a los permisos de usuarios, para no hacer ninguna macana jeje.
Te agradezco Iislas tu ayuda!
  #11 (permalink)  
Antiguo 12/09/2011, 09:17
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: DTS en Stored Procedure

Cuando tu ejecutas algo (store, codito t-sql) desde un JOB, el entorno de seguridad es tomada por el usuarios que arraca los servicios de agent.
__________________
MCTS Isaias Islas

Etiquetas: dts, procedure, server, sql, stored
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:33.