SQL Server - generar Archivo Plano

 
Vista:

generar Archivo Plano

Publicado por yeni (6 intervenciones) el 24/07/2008 17:14:32
Hola a todos, tengo mi procedimiento funcionando pero le faltan dos cosas que no he podido solucionar:

1.Necesito que el archivo lo genere con delimitador de la Barra Vertical y no con comas como lo hace actualmente.

2.El aplicativo está en el servidor y funciona generar el archivo de texto desde ahí; pero como los usuarios usan su Pcs y corren desde ahí el aplicativo . Necesitaría que el archivo fuera creado en el equipo de cada usuario pero actualmente si lo corro desde cada pc no crea el archivo ni en mi equipo ni en el servidor, me saca del aplicativo.
Este es mi procedimiento:
DECLARE @FileName varchar(50),
@bcpCommand varchar(2000)

SET @FileName = REPLACE('D:ordenes_'+CONVERT(char(8),GETDATE(),1)+'.txt','/','-')

SET @bcpCommand = 'bcp "select * from Reportes..prueba3" queryout "'
SET @bcpCommand = @bcpCommand + @FileName + '" -c -t, -T -S'

EXEC master..xp_cmdshell @bcpCommand

Agradecería la ayuda que me puedan brindar.
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:generar Archivo Plano

Publicado por pacopaz (131 intervenciones) el 24/07/2008 22:19:32
Tu primer requerimiento se resuerve cambiando, en el último set, la coma (,) por el pipe (|). De esta manera:

SET @bcpCommand = @bcpCommand + @FileName + '" -c -t| -T -S'

El segundo es posible, pero bajo muchas consideracione, hasta donde sé, y me explico:
La secuencia de comandos se ejecuta en el servidor, por lo que es el servidor, con sus accesos y métodos, el que resolverá como hacerlo, sin embargo, lo hará con respecto al perfil del usuario que intenta ejecutarlo.
Digamos que tu aplicación se conecta a la base de datos usando los perfiles de Active Directory. De ser así, cada uno de los usuarios debería tener derecho a escribir en una carpeta específica del servidor, para poder poner ahí el archivo. Luego, en caso de que se logre esto, el servidor de sql server debería tener permisos para poder pasar el archivo a una carpeta compartida en la compurtadora del usuario que lo ejecuta, para poder pasarlo de la carpeta donde se generó a la carpeta del usuario.
No sé si se pudiera lograr, pero en realidad creo que es mucho más sencillo tratar de hacerlo en el aplicativo, si es que puedes modificarlo ahí, de lo contrario, puedes hacer uno que se encargue específicamente de eso, aunque podría no llegar a gustarle al usuario.
Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:generar Archivo Plano

Publicado por yeni (6 intervenciones) el 25/07/2008 00:43:00
Hola, gracias por la respuesta y tienes razón.

Si sale más practico desde el aplicativo para obtener el archivo

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar