Problema con xp_cmdshell y las "

22/12/2004 - 11:28 por Salvador Ramos | Informe spam
Hola a todos:

Tengo el siguiente mandato, para compactar una base de datos Access, que
funciona perfectamente desde línea de comandos.
"C:\Archivos de programa\Microsoft Office\OFFICE11\msaccess"
"F:\Andamur\Tmp Importacion\Extranet\ExAndamur.mdb" /compact

Ahora quiero ejecutarlo con xp_cmdshell, y me da error. Sé que el problema
lo tengo en las comillas dobles, pero no logro dar con la solución (no puedo
quitar las comillas dobles porque la ruta contiene espacios).

Podeis indicarme cómo hacerlo ?

master..xp_cmdshell ' "C:\Archivos de programa\Microsoft
Office\OFFICE11\msaccess" "F:\Andamur\Tmp
Importacion\Extranet\ExAndamur.mdb" /compact '

No funciona, me indica que
"C:\Archivos" no se reconoce como un comando externo o externo.
Efectivamente ese no es el comando, ya que lo está truncando por el primer
espacio en blanco que encuentra.

También he intentado hacer un bat y ponerlo en una ruta sin espacios, y
tampoco funciona (en cambio si ejecuto el bat desde el explorador de windows
si que funciona):
xp_cmshell 'F:\Andamur\CompactarExAndamur.bat'
En este caso lo estoy probando desde el query analyzer y se me queda el
proceso ejecutandose infefinidamente.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

Preguntas similare

Leer las respuestas

#6 Salvador Ramos
22/12/2004 - 16:49 | Informe spam
Hola:

En primer lugar quiero agradecerte tu acertada respuesta, y decirte que aquí
todos estamos para aprender cosas nuevas y compartir lo que ya sabemos
(aludiendo a la famosa frase del maestro fernando guerrero). Además decirte
que me has sacado los colores, que ni soy ningún gurú, ni sé tanto como me
gustaría sobre sql server. Y por supuesto que soy uno más del grupo y que a
veces también necesito ayuda como todo el mundo :-)

La verdad que hasta ahora prácticamente no he necesitado utilizar
xp_cmdshell para casi nada. Siempre que he podido encontrar otra alternativa
la he aplicado.

Ahora voy a contaros en detalle el problema completo y el porqué mi idea de
utilizar este procedimiento almacenado, pero por supuesto, si hay otra
alternativa, estupendo, la aplicaré.

Quiero tener accesible para consultar en la web de la empresa un subconjunto
de datos de los que tengo en local en SQL Server, desde una aplicación
asp.net que accederá a una base de datos access (no puedo contratar en el
hosting sql server por temas de presupuesto, y porque el volumen de datos
será muy pequeño y serán de poca importancia). Para ello necesito hacer tres
procesos:
1) Actualizar en local la base de datos Access mediante DTS
2) Actualizar unos campos que quiero tener encriptados. Para ello he
generado una aplicación de consola (un .exe) con vb.net para aprovechar las
clases de seguridad del .net framework y realizar la encriptación
3) Compactar la base de datos access (me refiero a ejecutar la opción del
menú herramientas de access que permite esto, no a generar un .zip o
similar), ya que hago un borrado masivo y una nueva inserción de los datos
actualizados, y esto hace que quede espacio que puedo comprimir, para así
hacer un envío más rápido y estar consumiendo menos espacio donde tengo el
hosting.
4) subir el .mdb local al hosting mediante FTP (esto lo haré mediante un
.bat).

Mi idea es que el punto 2) se ejecute desde el propio paquete DTS como un
proceso más una vez finalizado el punto 1), y así lo he hecho, llamando al
.exe con xp_cmdshell
Hasta aquí ningún problema, ya lo tengo probado y todo va perfectamente.

Ahora, he querido aplicar lo mismo para hacer la compactación del .mdb, para
ello access permite ser invocado desde la línea de comandos de la siguiente
forma:
msaccess MiBd.mdb /compact
el problema primero ha sido que debo incluir la ruta del fichero
msaccess.exe y la del fichero MiBd.mdb, que era donde tenía el problema de
las comillas, que ya está resuelto. Aquí me ocurre lo ya me anticipó
qwalgrande, que se no compacta y se queda ejecutandose indefinidamente el
proceso msaccess.exe

Qué alternativas me proponeis para completar los puntos 3) y 4) del proceso
?

Muchas gracias

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"qwalgrande" <qwalgrande*nospam*@yahoo.es> escribió en el mensaje
news:
Hola.

Lo primero, disculparme ante las estupideces que mi humilde persona pueda
decirle a un MVP de SQL Server y que para lo único que servirán será para
poner de manifiesto mi ignorancia. En cualquier caso, he probado a


realizar
algo parecido a lo que comentas,

exec xp_cmdshell '"C:\Program Files\calc"'

Funciona "perfectamente", es decir, me aparece un proceso calc.exe en el
Task Manager, aunque no veo la calculadora. Y hasta que no mato dicha


tarea,
el comando queda ejecutándose (la consulta no finaliza). Y salvo que en tu
caso hayas previsto que el access se cierre de alguna forma, la tarea, la
consulta que lanzas, no finalizará nunca.

Si no pongo las comillas dobles, no funciona ('C:\Program' is not


recognized
as an internal or external command,...).

En cualquier caso, ejecutar aplicaciones así, siempre y cuando no esté
totalmente controlado, no sé yo si será la mejor de las ideas, ya que


lanzar
una compactación de access puede quedarse colgada y desde sql server no


habrá
luego forma de finalizar el proceso, habrá que ir al Task Manager a


matarla.

Yo uso habitualmente una compresión usando gzip desde xp_cmdshell y


obtengo
resultados satisfactorios. Sin embargo, en el pasado he tenido que lanzar
otras aplicaciones menos simples por métodos parecidos y tarde o temprano
acaban por quedarse pilladas. Y en ese caso puedes llegar a tener un
problema, en un par de ocasiones me vi forzado a reiniciar el servidor, ya
que no había forma de finalizar el proceso. Mi opinión es que si tienes
alguna otra forma de hacerlo, no uses xp_cmdshell, ni el servidor en


general
para realizar esta tarea. Si no te queda más remedio, un dts, un job que
permiten lanzar el proceso windows sería mejor opción. xp_cmdshell como
último recurso.

qwalgrande

"Salvador Ramos" wrote:

> Hola a todos:
>
> Tengo el siguiente mandato, para compactar una base de datos Access, que
> funciona perfectamente desde línea de comandos.
> "C:\Archivos de programa\Microsoft Office\OFFICE11\msaccess"
> "F:\Andamur\Tmp Importacion\Extranet\ExAndamur.mdb" /compact
>
> Ahora quiero ejecutarlo con xp_cmdshell, y me da error. Sé que el


problema
> lo tengo en las comillas dobles, pero no logro dar con la solución (no


puedo
> quitar las comillas dobles porque la ruta contiene espacios).
>
> Podeis indicarme cómo hacerlo ?
>
> master..xp_cmdshell ' "C:\Archivos de programa\Microsoft
> Office\OFFICE11\msaccess" "F:\Andamur\Tmp
> Importacion\Extranet\ExAndamur.mdb" /compact '
>
> No funciona, me indica que
> "C:\Archivos" no se reconoce como un comando externo o externo.
> Efectivamente ese no es el comando, ya que lo está truncando por el


primer
> espacio en blanco que encuentra.
>
> También he intentado hacer un bat y ponerlo en una ruta sin espacios, y
> tampoco funciona (en cambio si ejecuto el bat desde el explorador de


windows
> si que funciona):
> xp_cmshell 'F:\Andamur\CompactarExAndamur.bat'
> En este caso lo estoy probando desde el query analyzer y se me queda el
> proceso ejecutandose infefinidamente.
>
> Un saludo
> Salvador Ramos
> Murcia - España
> [Microsoft MVP SQL Server]
> www.helpdna.net
> ¿Te interesa participar en las reuniones
> del grupo de Usuarios de SQL-Server y .NET
> Se harán en levante de España, (Alicante o Murcia)?
>
>
>
Respuesta Responder a este mensaje
#7 Maxi
22/12/2004 - 17:12 | Informe spam
Salva:

Pregunta de curioso nomas:

Para que desde Sql compactar una BDD Access? en mi modelo mental eso no me
cierra :(


Salu2
Maxi


"Salvador Ramos" escribió en el
mensaje news:eRZk%
Muchas gracias a todos

Con vuestras indicaciones he solucionado el problema de las dobles
comillas.
Ahora tengo el problema de que no compacta la base de datos y deja
ejecutandose de forma indefinida el proceso msaccess.exe. También deja
pillado el enterprise manager o el query analyzer, que es desde donde lo
he
probado.

Voy a leer detenidamente la alternativa propuesta por qwalgrande, y voy
respondiendo en esa parte del hilo.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Gustavo Larriera [MVP]" escribió
en
el mensaje news:
Usa las comillas dobles en los tokens internos al camino:

exec master..xp_cmdshell ' copy c:\"folder de pruebas"\"hola mundo.txt"
c:\"hola mundo 2.txt" '


"Salvador Ramos" wrote in message
news::
> Hola a todos:
>
> Tengo el siguiente mandato, para compactar una base de datos Access,
> que
> funciona perfectamente desde línea de comandos.
> "C:\Archivos de programa\Microsoft Office\OFFICE11\msaccess"
> "F:\Andamur\Tmp Importacion\Extranet\ExAndamur.mdb" /compact
>
> Ahora quiero ejecutarlo con xp_cmdshell, y me da error. Sé que el
> problema
> lo tengo en las comillas dobles, pero no logro dar con la solución (no
> puedo
> quitar las comillas dobles porque la ruta contiene espacios).
>
> Podeis indicarme cómo hacerlo ?
>
> master..xp_cmdshell ' "C:\Archivos de programa\Microsoft
> Office\OFFICE11\msaccess" "F:\Andamur\Tmp
> Importacion\Extranet\ExAndamur.mdb" /compact '
>
> No funciona, me indica que
> "C:\Archivos" no se reconoce como un comando externo o externo.
> Efectivamente ese no es el comando, ya que lo está truncando por el
> primer
> espacio en blanco que encuentra.
>
> También he intentado hacer un bat y ponerlo en una ruta sin espacios, y
> tampoco funciona (en cambio si ejecuto el bat desde el explorador de
> windows
> si que funciona):
> xp_cmshell 'F:\Andamur\CompactarExAndamur.bat'
> En este caso lo estoy probando desde el query analyzer y se me queda el
> proceso ejecutandose infefinidamente.
>
> Un saludo
> Salvador Ramos
> Murcia - España
> [Microsoft MVP SQL Server]
> www.helpdna.net
> ¿Te interesa participar en las reuniones
> del grupo de Usuarios de SQL-Server y .NET
> Se harán en levante de España, (Alicante o Murcia)?


Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and
confers no rights.






Respuesta Responder a este mensaje
#8 Salvador Ramos
22/12/2004 - 17:20 | Informe spam
Si, claro no es lógico, pero te explico el motivo:

Todo este proceso se va a ejecutar de forma programada. Así si lo hago en un
paquete DTS, puedo establecer un flujo para que el siguiente paso se ejecute
al concluir correctamente el paso que se está ejecutando (los enlazo en el
paquete con líneas verdes indicando el flujo).
Si los hago de forma independiente, tendré por un lado que programar el
paquete dts que genera los datos, y luego de forma totalmente independiente
programar una tarea en windows que ejecute la compactación. En este caso
tengo que estar calculando tiempos para que siempre se ejecute después de
haber finalizado el DTS, y además no tengo garantía de que se ejecute sólo
si ha sido correcta la ejecución del DTS.
En fin, es sólo por tenerlo todo en un sólo flujo de trabajo :-)

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Maxi" escribió en el mensaje
news:
Salva:

Pregunta de curioso nomas:

Para que desde Sql compactar una BDD Access? en mi modelo mental eso no me
cierra :(


Salu2
Maxi


"Salvador Ramos" escribió en el
mensaje news:eRZk%
> Muchas gracias a todos
>
> Con vuestras indicaciones he solucionado el problema de las dobles
> comillas.
> Ahora tengo el problema de que no compacta la base de datos y deja
> ejecutandose de forma indefinida el proceso msaccess.exe. También deja
> pillado el enterprise manager o el query analyzer, que es desde donde lo
> he
> probado.
>
> Voy a leer detenidamente la alternativa propuesta por qwalgrande, y voy
> respondiendo en esa parte del hilo.
>
> Un saludo
> Salvador Ramos
> Murcia - España
> [Microsoft MVP SQL Server]
> www.helpdna.net
> ¿Te interesa participar en las reuniones
> del grupo de Usuarios de SQL-Server y .NET
> Se harán en levante de España, (Alicante o Murcia)?
>
> "Gustavo Larriera [MVP]"


escribió
> en
> el mensaje news:
>> Usa las comillas dobles en los tokens internos al camino:
>>
>> exec master..xp_cmdshell ' copy c:\"folder de pruebas"\"hola mundo.txt"
>> c:\"hola mundo 2.txt" '
>>
>>
>> "Salvador Ramos" wrote in message
>> news::
>> > Hola a todos:
>> >
>> > Tengo el siguiente mandato, para compactar una base de datos Access,
>> > que
>> > funciona perfectamente desde línea de comandos.
>> > "C:\Archivos de programa\Microsoft Office\OFFICE11\msaccess"
>> > "F:\Andamur\Tmp Importacion\Extranet\ExAndamur.mdb" /compact
>> >
>> > Ahora quiero ejecutarlo con xp_cmdshell, y me da error. Sé que el
>> > problema
>> > lo tengo en las comillas dobles, pero no logro dar con la solución


(no
>> > puedo
>> > quitar las comillas dobles porque la ruta contiene espacios).
>> >
>> > Podeis indicarme cómo hacerlo ?
>> >
>> > master..xp_cmdshell ' "C:\Archivos de programa\Microsoft
>> > Office\OFFICE11\msaccess" "F:\Andamur\Tmp
>> > Importacion\Extranet\ExAndamur.mdb" /compact '
>> >
>> > No funciona, me indica que
>> > "C:\Archivos" no se reconoce como un comando externo o externo.
>> > Efectivamente ese no es el comando, ya que lo está truncando por el
>> > primer
>> > espacio en blanco que encuentra.
>> >
>> > También he intentado hacer un bat y ponerlo en una ruta sin espacios,


y
>> > tampoco funciona (en cambio si ejecuto el bat desde el explorador de
>> > windows
>> > si que funciona):
>> > xp_cmshell 'F:\Andamur\CompactarExAndamur.bat'
>> > En este caso lo estoy probando desde el query analyzer y se me queda


el
>> > proceso ejecutandose infefinidamente.
>> >
>> > Un saludo
>> > Salvador Ramos
>> > Murcia - España
>> > [Microsoft MVP SQL Server]
>> > www.helpdna.net
>> > ¿Te interesa participar en las reuniones
>> > del grupo de Usuarios de SQL-Server y .NET
>> > Se harán en levante de España, (Alicante o Murcia)?
>>
>>
>> Gustavo Larriera, MVP
>> Uruguay LatAm
>> http://sqljunkies.com/weblog/gux/
>> Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga


ningun
>> derecho / This posting is provided "AS IS" with no warranties, and
>> confers no rights.
>>
>>
>
>


Respuesta Responder a este mensaje
#9 Salvador Ramos
22/12/2004 - 17:24 | Informe spam
Bueno, la verdad que me he ido cegando yo mismo :-), os cuento lo que estaba
haciendo:

Estaba incluyendo en el paquete dts una 'tarea de ejecución de SQL' y en
ella sólo había una línea que era la ejecución de xp_cmdshell, con lo
sencillo que es incluir una 'tarea de ejecución de proceso' y allí indicar
el mandato win32 a ejecutar y sus parámetros. En fin, que a veces a uno se
le cierra la mente y no ve el camino lógico y sencillo :-)

Muchas gracias a todos.

Pd. Necesito unas vacaciones, pero ya la consumí todassss :-(

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Salvador Ramos" escribió en el
mensaje news:%
Hola:

En primer lugar quiero agradecerte tu acertada respuesta, y decirte que


aquí
todos estamos para aprender cosas nuevas y compartir lo que ya sabemos
(aludiendo a la famosa frase del maestro fernando guerrero). Además


decirte
que me has sacado los colores, que ni soy ningún gurú, ni sé tanto como me
gustaría sobre sql server. Y por supuesto que soy uno más del grupo y que


a
veces también necesito ayuda como todo el mundo :-)

La verdad que hasta ahora prácticamente no he necesitado utilizar
xp_cmdshell para casi nada. Siempre que he podido encontrar otra


alternativa
la he aplicado.

Ahora voy a contaros en detalle el problema completo y el porqué mi idea


de
utilizar este procedimiento almacenado, pero por supuesto, si hay otra
alternativa, estupendo, la aplicaré.

Quiero tener accesible para consultar en la web de la empresa un


subconjunto
de datos de los que tengo en local en SQL Server, desde una aplicación
asp.net que accederá a una base de datos access (no puedo contratar en el
hosting sql server por temas de presupuesto, y porque el volumen de datos
será muy pequeño y serán de poca importancia). Para ello necesito hacer


tres
procesos:
1) Actualizar en local la base de datos Access mediante DTS
2) Actualizar unos campos que quiero tener encriptados. Para ello he
generado una aplicación de consola (un .exe) con vb.net para aprovechar


las
clases de seguridad del .net framework y realizar la encriptación
3) Compactar la base de datos access (me refiero a ejecutar la opción del
menú herramientas de access que permite esto, no a generar un .zip o
similar), ya que hago un borrado masivo y una nueva inserción de los datos
actualizados, y esto hace que quede espacio que puedo comprimir, para así
hacer un envío más rápido y estar consumiendo menos espacio donde tengo el
hosting.
4) subir el .mdb local al hosting mediante FTP (esto lo haré mediante un
.bat).

Mi idea es que el punto 2) se ejecute desde el propio paquete DTS como un
proceso más una vez finalizado el punto 1), y así lo he hecho, llamando al
.exe con xp_cmdshell
Hasta aquí ningún problema, ya lo tengo probado y todo va perfectamente.

Ahora, he querido aplicar lo mismo para hacer la compactación del .mdb,


para
ello access permite ser invocado desde la línea de comandos de la


siguiente
forma:
msaccess MiBd.mdb /compact
el problema primero ha sido que debo incluir la ruta del fichero
msaccess.exe y la del fichero MiBd.mdb, que era donde tenía el problema de
las comillas, que ya está resuelto. Aquí me ocurre lo ya me anticipó
qwalgrande, que se no compacta y se queda ejecutandose indefinidamente el
proceso msaccess.exe

Qué alternativas me proponeis para completar los puntos 3) y 4) del


proceso
?

Muchas gracias

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"qwalgrande" <qwalgrande*nospam*@yahoo.es> escribió en el mensaje
news:
> Hola.
>
> Lo primero, disculparme ante las estupideces que mi humilde persona


pueda
> decirle a un MVP de SQL Server y que para lo único que servirán será


para
> poner de manifiesto mi ignorancia. En cualquier caso, he probado a
realizar
> algo parecido a lo que comentas,
>
> exec xp_cmdshell '"C:\Program Files\calc"'
>
> Funciona "perfectamente", es decir, me aparece un proceso calc.exe en el
> Task Manager, aunque no veo la calculadora. Y hasta que no mato dicha
tarea,
> el comando queda ejecutándose (la consulta no finaliza). Y salvo que en


tu
> caso hayas previsto que el access se cierre de alguna forma, la tarea,


la
> consulta que lanzas, no finalizará nunca.
>
> Si no pongo las comillas dobles, no funciona ('C:\Program' is not
recognized
> as an internal or external command,...).
>
> En cualquier caso, ejecutar aplicaciones así, siempre y cuando no esté
> totalmente controlado, no sé yo si será la mejor de las ideas, ya que
lanzar
> una compactación de access puede quedarse colgada y desde sql server no
habrá
> luego forma de finalizar el proceso, habrá que ir al Task Manager a
matarla.
>
> Yo uso habitualmente una compresión usando gzip desde xp_cmdshell y
obtengo
> resultados satisfactorios. Sin embargo, en el pasado he tenido que


lanzar
> otras aplicaciones menos simples por métodos parecidos y tarde o


temprano
> acaban por quedarse pilladas. Y en ese caso puedes llegar a tener un
> problema, en un par de ocasiones me vi forzado a reiniciar el servidor,


ya
> que no había forma de finalizar el proceso. Mi opinión es que si tienes
> alguna otra forma de hacerlo, no uses xp_cmdshell, ni el servidor en
general
> para realizar esta tarea. Si no te queda más remedio, un dts, un job que
> permiten lanzar el proceso windows sería mejor opción. xp_cmdshell como
> último recurso.
>
> qwalgrande
>
> "Salvador Ramos" wrote:
>
> > Hola a todos:
> >
> > Tengo el siguiente mandato, para compactar una base de datos Access,


que
> > funciona perfectamente desde línea de comandos.
> > "C:\Archivos de programa\Microsoft Office\OFFICE11\msaccess"
> > "F:\Andamur\Tmp Importacion\Extranet\ExAndamur.mdb" /compact
> >
> > Ahora quiero ejecutarlo con xp_cmdshell, y me da error. Sé que el
problema
> > lo tengo en las comillas dobles, pero no logro dar con la solución (no
puedo
> > quitar las comillas dobles porque la ruta contiene espacios).
> >
> > Podeis indicarme cómo hacerlo ?
> >
> > master..xp_cmdshell ' "C:\Archivos de programa\Microsoft
> > Office\OFFICE11\msaccess" "F:\Andamur\Tmp
> > Importacion\Extranet\ExAndamur.mdb" /compact '
> >
> > No funciona, me indica que
> > "C:\Archivos" no se reconoce como un comando externo o externo.
> > Efectivamente ese no es el comando, ya que lo está truncando por el
primer
> > espacio en blanco que encuentra.
> >
> > También he intentado hacer un bat y ponerlo en una ruta sin espacios,


y
> > tampoco funciona (en cambio si ejecuto el bat desde el explorador de
windows
> > si que funciona):
> > xp_cmshell 'F:\Andamur\CompactarExAndamur.bat'
> > En este caso lo estoy probando desde el query analyzer y se me queda


el
> > proceso ejecutandose infefinidamente.
> >
> > Un saludo
> > Salvador Ramos
> > Murcia - España
> > [Microsoft MVP SQL Server]
> > www.helpdna.net
> > ¿Te interesa participar en las reuniones
> > del grupo de Usuarios de SQL-Server y .NET
> > Se harán en levante de España, (Alicante o Murcia)?
> >
> >
> >


Respuesta Responder a este mensaje
#10 Maxi
22/12/2004 - 17:27 | Informe spam
ok, pero una duda no: vos comparaste la BDD access cuanto disminuye? porque
ademas de estar recargando al servidor con una operacion de estas, quizas el
costo benefico no tenga sentido, o sea: has notado una considerada reduccion
en el archivo MDB? y este archivo MDB pesa mucho ?


Salu2
Maxi


"Salvador Ramos" escribió en el
mensaje news:
Si, claro no es lógico, pero te explico el motivo:

Todo este proceso se va a ejecutar de forma programada. Así si lo hago en
un
paquete DTS, puedo establecer un flujo para que el siguiente paso se
ejecute
al concluir correctamente el paso que se está ejecutando (los enlazo en el
paquete con líneas verdes indicando el flujo).
Si los hago de forma independiente, tendré por un lado que programar el
paquete dts que genera los datos, y luego de forma totalmente
independiente
programar una tarea en windows que ejecute la compactación. En este caso
tengo que estar calculando tiempos para que siempre se ejecute después de
haber finalizado el DTS, y además no tengo garantía de que se ejecute sólo
si ha sido correcta la ejecución del DTS.
En fin, es sólo por tenerlo todo en un sólo flujo de trabajo :-)

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Maxi" escribió en el mensaje
news:
Salva:

Pregunta de curioso nomas:

Para que desde Sql compactar una BDD Access? en mi modelo mental eso no
me
cierra :(


Salu2
Maxi


"Salvador Ramos" escribió en el
mensaje news:eRZk%
> Muchas gracias a todos
>
> Con vuestras indicaciones he solucionado el problema de las dobles
> comillas.
> Ahora tengo el problema de que no compacta la base de datos y deja
> ejecutandose de forma indefinida el proceso msaccess.exe. También deja
> pillado el enterprise manager o el query analyzer, que es desde donde
> lo
> he
> probado.
>
> Voy a leer detenidamente la alternativa propuesta por qwalgrande, y voy
> respondiendo en esa parte del hilo.
>
> Un saludo
> Salvador Ramos
> Murcia - España
> [Microsoft MVP SQL Server]
> www.helpdna.net
> ¿Te interesa participar en las reuniones
> del grupo de Usuarios de SQL-Server y .NET
> Se harán en levante de España, (Alicante o Murcia)?
>
> "Gustavo Larriera [MVP]"


escribió
> en
> el mensaje news:
>> Usa las comillas dobles en los tokens internos al camino:
>>
>> exec master..xp_cmdshell ' copy c:\"folder de pruebas"\"hola
>> mundo.txt"
>> c:\"hola mundo 2.txt" '
>>
>>
>> "Salvador Ramos" wrote in
>> message
>> news::
>> > Hola a todos:
>> >
>> > Tengo el siguiente mandato, para compactar una base de datos Access,
>> > que
>> > funciona perfectamente desde línea de comandos.
>> > "C:\Archivos de programa\Microsoft Office\OFFICE11\msaccess"
>> > "F:\Andamur\Tmp Importacion\Extranet\ExAndamur.mdb" /compact
>> >
>> > Ahora quiero ejecutarlo con xp_cmdshell, y me da error. Sé que el
>> > problema
>> > lo tengo en las comillas dobles, pero no logro dar con la solución


(no
>> > puedo
>> > quitar las comillas dobles porque la ruta contiene espacios).
>> >
>> > Podeis indicarme cómo hacerlo ?
>> >
>> > master..xp_cmdshell ' "C:\Archivos de programa\Microsoft
>> > Office\OFFICE11\msaccess" "F:\Andamur\Tmp
>> > Importacion\Extranet\ExAndamur.mdb" /compact '
>> >
>> > No funciona, me indica que
>> > "C:\Archivos" no se reconoce como un comando externo o externo.
>> > Efectivamente ese no es el comando, ya que lo está truncando por el
>> > primer
>> > espacio en blanco que encuentra.
>> >
>> > También he intentado hacer un bat y ponerlo en una ruta sin
>> > espacios,


y
>> > tampoco funciona (en cambio si ejecuto el bat desde el explorador de
>> > windows
>> > si que funciona):
>> > xp_cmshell 'F:\Andamur\CompactarExAndamur.bat'
>> > En este caso lo estoy probando desde el query analyzer y se me queda


el
>> > proceso ejecutandose infefinidamente.
>> >
>> > Un saludo
>> > Salvador Ramos
>> > Murcia - España
>> > [Microsoft MVP SQL Server]
>> > www.helpdna.net
>> > ¿Te interesa participar en las reuniones
>> > del grupo de Usuarios de SQL-Server y .NET
>> > Se harán en levante de España, (Alicante o Murcia)?
>>
>>
>> Gustavo Larriera, MVP
>> Uruguay LatAm
>> http://sqljunkies.com/weblog/gux/
>> Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga


ningun
>> derecho / This posting is provided "AS IS" with no warranties, and
>> confers no rights.
>>
>>
>
>






Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida