SQL Server - borrar excel o .csv desde DTS en vbscript

 
Vista:

borrar excel o .csv desde DTS en vbscript

Publicado por marta (4 intervenciones) el 12/03/2007 13:01:30
Hola, tengo un DTS escrito en vbscript para leer datos de un fichero .xls e insertar datos en una base de datos, después de realizar todo el proceso quiero que el proceso borre el fichero que fue leido. Mi problema es que cuando intento ejecutar un delete del fichero obtengo un error: Permission denied. Mi pregunta es si es posible borrar el fichero desde código o cual puede ser la razón por que la que no se me permite hacer un delete del fichero.
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:borrar excel o .csv desde DTS en vbscript

Publicado por eljhonb (124 intervenciones) el 12/03/2007 14:29:16
Pueden ser dos cosas:
1. El usuario de la bd de datos no tiene permisos sobre la carpeta donde está el fichero y por eso no lo puede borrar.
2. El usuario con el que estás ejecutando la dts no tiene permisos para ejecutar el sp_cmdshell

lo primero lo solucionas directamente desde el windows, dando permisos a esa carpeta.
Lo segundo lo solucionas agregando el usuario el rol de sysadmin de la master.

salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:borrar excel o .csv desde DTS en vbscript

Publicado por marta (4 intervenciones) el 12/03/2007 15:13:43
Gracias eljhonb, ahora tengo aquí unas lagunas con esto de los utilizadores de SQLServer:
- el propietario y el que ejecuta la DTS es mi utilizador de Windows, por tanto debo crear un utilizador en Security/Logins para este utilizador de Windows??
- El usuario de la base de datos, quien es este?? el usuario que yo utilizo en mi código para abrir conexiones con la BBDD para insertar, y si es el... que tiene que ver mi conexión con BBDD para hacer consultas e insertar, con los permisos sobre los ficheros??
He intentado hacer ambas cosas y todavía tengo el Permission Deneid...
La verdad que no entiendo muy bien porque consigo borrar ficheros de .log y no ficheros .xls o .csv, será que estos tienen alguna característica especial que les hace imborrables... ;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:borrar excel o .csv desde DTS en vbscript

Publicado por Isaías (3308 intervenciones) el 12/03/2007 19:19:08
Marta (Con el permiso de eljhonb)

El usuario con el que arrancas los servicios de SQL SERVER, debe tener PERMISOS suficientes sobre la carpeta donde se encuentran almacenados tus archivos XLS o CSV, de lo contrario, no podras hacer un DEL en el OS.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:borrar excel o .csv desde DTS en vbscript

Publicado por eljhonb (124 intervenciones) el 12/03/2007 21:37:11
Es muy cierto lo que dice Isaías.
Los permisos en esa carpeta dependen de la seguridad que quieras manejar.
Puedes probar dándole permisos totales a todos los usuarios sobre esa capeta y verás que debe borrar el fichero sin ningún problema. Luego le cambias los permisos sólo al usuario que desees.
salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:borrar excel o .csv desde DTS en vbscript

Publicado por marta (4 intervenciones) el 13/03/2007 10:52:50
Esa carpeta tiene Full Control para todos los utilizadores, y el código que utilizo para borrar el fichero es este:

fichero = "F:\dts\filesABAST.xls"
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(fichero) Then
Set apag = objFSO.Getfile(fichero)
apag.delete
End If

Y no lo entiendo, pero sigo con el Permiso Denegado... no quiero ser pesada y lo mismo es cualquier tonteria pero no consigo saber porque es...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:borrar excel o .csv desde DTS en vbscript

Publicado por eljhonb (124 intervenciones) el 13/03/2007 13:44:25
por qué no lo borras agregando una tarea a tu DTS y en ella borras el archivo así:

DECLARE @StrBorrar varchar(255)
Set @StrBorrar= 'Delete F:\dts\filesABAST.xls'
exec master..xp_cmdshell @StrBorrar

ojalá te sirva!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:borrar excel o .csv desde DTS en vbscript

Publicado por marta (4 intervenciones) el 13/03/2007 15:58:42
Muchas gracias! por fin lo conseguí! al lorito con la estupidez...
Yo creaba un objeto Excel application, leia los datos y después no hacía un close de la hoja de excel... podeís imaginar... cada vez que corría el DTS se quedaba por ahí abierto un proceso de Excel que me impedía borrar el fichero.
Me dí cuenta cuando intenté borrar el fichero desde la linea de comandos y tampoco conseguía...
De cualquier forma gracias, aprendí alguna cosa más con vuestras respuestas, la verdad que no acostumbro a escribir mucho en foros pero creo que ayudan cuando hay movimiento...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:borrar excel o .csv desde DTS en vbscript

Publicado por eljhonb (124 intervenciones) el 13/03/2007 16:46:24
De nada.
La verdad es que los foros, bien utilizados, son de gran ayuda.

Salu2 desde Colombia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar