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

#16 Salvador Ramos
22/12/2004 - 17:57 | Informe spam
Gracias Carlos ;-)

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

"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:
Ok, ahora fui yo el que me adelanté :-S

Me alegro que hayas solucionado el problema


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:#
> Maxi, Salva detalla por qué quería hacer eso en un post posterior.
>
> De todos modos, si la idea es automatizar el proceso en un sólo paso
que
> realizaría directamente el DTS, pero el problema está en que se queda
> colgado la compactación del mdb al llamarlo desde xp_cmdshell, pues


igual
la
> solución está en crear un bat que ejecute el dtsrun, que compacte la


base
de
> datos y que haga el FTP. ¿Qué piensas, Salva?
>
> Un saludo
>
> -
> "Sólo sé que no sé nada. " (Sócrates)
>
> "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
#17 ulises
22/12/2004 - 18:04 | Informe spam
En Access 2000 está en Tools - Options: General tab

Saludos,
Ulises

Sería lo ideal. He estado buscando esa opción, pero no la


encuentro. Me
podrías indicar donde y cómo puedo activarla ?

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

"ulises" escribió en el mensaje
news:09dd01c4e844$887b7930$
Si no me equivoco en Access puedes activar la opción
"Compact on close", eso te evitará que realices la
compactación en cada carga de datos y dejarselo al propio
access ...

Saludos,
Ulises

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
#18 Salvador Ramos
22/12/2004 - 18:14 | Informe spam
Muchas gracias

He marcado la opción, y si que compacta si hago doble click sobre la base de
datos y después la cierro.

Pero como estoy accediendo a ella mediante un paquete dts donde tengo una
conexión a access, cuando lo ejecuto no compacta :-(

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

"ulises" escribió en el mensaje
news:004301c4e848$42fad280$
En Access 2000 está en Tools - Options: General tab

Saludos,
Ulises

Sería lo ideal. He estado buscando esa opción, pero no la


encuentro. Me
podrías indicar donde y cómo puedo activarla ?

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

"ulises" escribió en el mensaje
news:09dd01c4e844$887b7930$
Si no me equivoco en Access puedes activar la opción
"Compact on close", eso te evitará que realices la
compactación en cada carga de datos y dejarselo al propio
access ...

Saludos,
Ulises

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






.





.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida