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

llamar un .bat o un .exe desde TSQL

Estas en el tema de llamar un .bat o un .exe desde TSQL en el foro de SQL Server en Foros del Web. Buenas tardes, mi pregunta es la siguiente, necesito imprimir un documento inmediatamente después de que se corre un procedimiento almacenado, ahora bien lo hice llamando ...
  #1 (permalink)  
Antiguo 17/12/2012, 15:32
 
Fecha de Ingreso: septiembre-2007
Mensajes: 60
Antigüedad: 17 años, 2 meses
Puntos: 1
Exclamación llamar un .bat o un .exe desde TSQL

Buenas tardes, mi pregunta es la siguiente, necesito imprimir un documento inmediatamente después de que se corre un procedimiento almacenado, ahora bien lo hice llamando un .bat con el comando master..xp_cmdShell PRINT archivo.txt /d:lpt1, se imprime pero me lo imprime en formato crudo (RAW) es decir no tengo control sobre los tabuladores ni tamaño de fuente ni tipo de fuente ni siquiera el caracter de fin de linea, ahora bien al intentar ejecutar el comando master..xp_cmdShell 'Start notepad archivo.txt' ( con el comando para imprimir el documento, solo que ahora no lo recuerdo ), me genera el problema que se cuelga porque obviamente esta llamando a un archivo GUI desde TSQL lo cual hace que el servidor casi se cuelgue, he leído y en ciertos lugares mencionan la de usar un job para llamar a ese .bat o .exe pero mi duda es que al crear un job lo programo para que se ejecute cada cierto tiempo, pero eso no es lo que requiero en mi caso porque incluso aunque lo mande a ejecutar cada 1 minuto, es tiempo suficiente para que se generen mas documentos y la respuesta deja de ser tan inmediata como se quiere y no se que pueda realizar para llevar a cabo tal fin.

Alguien sabe cual es la mejor aproximacion que debo tomar para realizar esto y que se ejecute el .bat que mandara a imprimir el documento de manera inmediata despues de llamar al procedimiento almacenado ???

Saludos
  #2 (permalink)  
Antiguo 18/12/2012, 03:34
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 12 años, 4 meses
Puntos: 40
Respuesta: llamar un .bat o un .exe desde TSQL

Como has mencionado- puedes ejecutar un bat o un exe a traves de XP_CmdShell, sujeto a los problemas y los derechos de este procedimiento.
El sistema ejecuta el bat o el exe en el servidor y no en tu cliente, es decir que no puedes utilizar el XP_CmdShell para abrir un archivo de notepad o de excel en tu computadora, y lo que se abre en el servidor es inutil, gasta memoria y finalmente el servidor se cuelgue.

El SQL server no te proporciona un interfaz de usuario y tu debes desarollarlo, o abrir el notepad manualmente.
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #3 (permalink)  
Antiguo 18/12/2012, 06:10
 
Fecha de Ingreso: septiembre-2007
Mensajes: 60
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: llamar un .bat o un .exe desde TSQL

Cita:
Iniciado por GeriReshef Ver Mensaje
Como has mencionado- puedes ejecutar un bat o un exe a traves de XP_CmdShell, sujeto a los problemas y los derechos de este procedimiento.
El sistema ejecuta el bat o el exe en el servidor y no en tu cliente, es decir que no puedes utilizar el XP_CmdShell para abrir un archivo de notepad o de excel en tu computadora, y lo que se abre en el servidor es inutil, gasta memoria y finalmente el servidor se cuelgue.

El SQL server no te proporciona un interfaz de usuario y tu debes desarollarlo, o abrir el notepad manualmente.
si, es que ya se que se abre en el servidor y es que es eso precisamente lo que busco, de hecho no quiero que solamente se abra y ya, quiero es que se mande a imprimir no abrir el archivo porque para nada me sirve tenerlo abierto
  #4 (permalink)  
Antiguo 18/12/2012, 12:23
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: llamar un .bat o un .exe desde TSQL

EXEC xp_cmdshell 'PRINT [unidad:] [ruta]nombrearchivo'
__________________
MCTS Isaias Islas

Etiquetas: bat, exe
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 19:30.