Hola a tod@s.
He declarado este DTS que lo que hace es volcar el las filas de la consulta
de abajo en un fichero.
SELECT RIGHT(dbo.F_Tarjeta_Embarque(grup_codi, bil_id, 12), 12) + case
grup_codi when bil_grupoida then bil_cupon_ida else bil_cupon_vuelta end +
lin_codsap + '972' + '972' + convert(char(10), grup_fechsa, 103) + ' ' +
convert(char(5), grup_horasa, 108) +
cast(tap_tip_id as char(1)) + CASE tir_porcentaje WHEN 0 THEN '00' ELSE
bip_doc_id END + isnull(replicate('0', 12 - len(bip_dni)) + bip_dni,
'000000000000') +
upper(bip_nombre + ' ' + bip_apell1 + ' ' + bip_apell2) AS PARTE4--, @email
AS email
FROM ic_billetes
INNER JOIN ic_grupoviaje ON grup_codi IN (bil_grupoida, bil_grupovuelta)
INNER JOIN ic_linea ON lin_codlin = grup_codlin
INNER JOIN ic_bilper ON bip_bil_id = bil_id
INNER JOIN ic_tarpax ON tap_id = bip_tap_id_i
INNER JOIN ic_tipres ON tir_id = bip_tir_id
WHERE (grup_codi = ?) AND (bil_estado = 'E') AND (bil_tipo <> 'C')
El parámetro global está definido como un Integer y se llama viaje., y por
defecto vale -1. En el diseñador del DTS, si el pongo un valor correcto a
viaje y lo ejecuto funciona bien, pero dejo -1 y desde el analizador de
consultas realizo la siguiente llamada:
EXEC master..XP_CMDSHELL 'DTSRUN /Slocalhost /Nprueba_aarchivo
/A''viaje'':''3''=''32962'' /E'
(como veis le paso el valor 32962 a la variable global) pues no devuelve
nada (supongo que utiliza el -1 como valor y no lee el que yo le paso).
¿Qué falla?
Es el SQLServer 2000.
Y puestos a preguntar: ¿hay forma de especificarle desde el DTSRun el nombre
del fichero (ahroa se llama prueba.txt pero el nombre cada vez cambia) donde
ha de guardar los datos?
Muchas gracias por la ayuda.
Víctor.
Leer las respuestas