Ejecutar sql mediante xp_cmdshell

17/07/2008 - 23:44 por OJVM | Informe spam
Buenas tardes a todos. bueno pues estoy tratando de ejecutar una
sentencia sql y mandar el resultado a un archivo de texto.

La cuestion esta en que si se genera el archivo de texto pero me
arroja el siguiente texto.

Msg 137, Level 15, State 2, Server xxxxxxxxx, Line 1
Must declare the variable '@qryPermisos'.

y este es codigo con el que trato de generarlo. les agradesco de
antemano la ayuda que me puedan proporcionar.

declare @claveEmpresa char(3)
declare @qryPermisos varchar(1000)
declare @permisos char(1)
declare @cmd varchar(1000)

set @claveEmpresa = '001'
set @permisos = 'P'

set @qryPermisos = 'SELECT ' + @claveEmpresa + ' AS empresa,
e.EMPNUMEMP AS empleado, a.Asisfecha AS fecha, e.EMPXTRA10 AS nomina,
a.AsisPermCuenta FROM ASISTENCIA AS a INNER JOIN EMPLEADO AS e ON
e.EMPNUMINT = a.EMPNUMINT where a.asispermiso = ' + @permisos
set @cmd = 'osql -P -S -Q @qryPermisos -o "c:\exportacionReloj
\archivoAsistencias.txt" -w2000'
exec master..xp_cmdshell @cmd
GO

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera (MVP)
18/07/2008 - 04:24 | Informe spam
Modifique asi:

set @cmd = 'osql -P -S -Q '+' " '+ @qryPermisos + ' " ' +
' -o "c:\exportacionReloj\archivoAsistencias.txt" -w2000'



Gustavo Larriera, Microsoft MVP
http://www.linkedin.com/in/gustavolarriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"OJVM" wrote:

Mostrar la cita
#2 OJVM
18/07/2008 - 22:23 | Informe spam
On 17 jul, 21:24, Gustavo Larriera (MVP)
wrote:
Mostrar la cita
Te agradesco tu atencion. voy a probarlo y les comento.
#3 OJVM
18/07/2008 - 22:55 | Informe spam
On 17 jul, 21:24, Gustavo Larriera (MVP)
wrote:
Mostrar la cita
mira estube probando la correcion que me enviaste pero de cualquier
manera me marca error. mira por el momento tengo otro pequeño
problema, creo que es algo muy facil pero no le encuentro la solucion.
deseo concatenar una sentencia sql con un parametro pero simepre
obtengo error. es algo asi


DECLARE @sqltext NVARCHAR(800)
declare @estatusEmp char(2)
set @estatusEmp = 'A'
Set @sqltext = N'select empestatus, empnumint, empnumemp from empleado
where ltrim(rtrim(empestatus)) =' + @estatusEmp
print @sqltext


select empestatus, empnumint, empnumemp from empleado where
ltrim(rtrim(empestatus)) =A

al ejecutar ese qry me marca el erro de que la columna "A" no existe.,
lo cual es correcto, mas sin embargo no encuentro la manera de
agregarle la comilla simple a la letra A, para que quede algo asi.

select empestatus, empnumint, empnumemp from empleado where
ltrim(rtrim(empestatus)) = 'A'

te agradesco de antemano la ayuda que me puedas proporcionar.
#4 Gustavo Larriera (MVP)
18/07/2008 - 23:42 | Informe spam
En mi ejemplo del mensaje previo, revise con cuidado el uso de ' y de "

Para concatenar un ' usted debe escribir el apóstrofo en forma doble. Por
ejemplo, si usted quiere construir un string que sea

SOY LA LETRA 'A' EN ESTE STRING

entonces haga esto:

'SOY LA LETRA ' + '''' + 'A' + '''' + ' EN ESTE STRING'




Gustavo Larriera, Microsoft MVP
http://www.linkedin.com/in/gustavolarriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"OJVM" wrote:

Mostrar la cita
#5 OJVM
19/07/2008 - 01:21 | Informe spam
On 18 jul, 16:42, Gustavo Larriera (MVP)
wrote:
Mostrar la cita
muchas gracias, ya me funciono
Ads by Google
Search Busqueda sugerida