SQL Server - generar archivo plano

 
Vista:

generar archivo plano

Publicado por Sandra (2 intervenciones) el 16/07/2007 02:00:31
Hola a todos, agradecería si me ayudaran con algo, necesito generar un archivo plano ya sea desde una consulta o un procedimiento, que debo hacer?????

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 Javier Guerrero (2 intervenciones) el 16/07/2007 03:09:43
Hola prima.
te cuento es muy facil lo que quieres hacer

te muestro un ejemplito

DECLARE @FileName varchar(50),
@bcpCommand varchar(2000)
--lugar donde lo vas a guardar
SET @FileName = REPLACE('C:\Soporte3G\Archivo + 'Nom' + '.txt' ,'/','-')

SET @bcpCommand = 'bcp " exec NombreBaseDeDatos..Nombre del procedimiento [si_le_quieres_pasar_parametros] "
queryout "'
SET @bcpCommand = @bcpCommand + @FileName + '" -U usuario-P clave* -c'

EXEC master..xp_cmdshell @bcpCommand

listo. donde puse el nombre del paquete puedes poner un Select * from tabla o lo que quieras.

importante que le te crees un usuario de clave y listo.
cualquier cosa me dices.
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:inquietud primo

Publicado por sandra (2 intervenciones) el 17/07/2007 00:03:38
Hola primo, jejeje
Gracias por contestarme, te cuento que generé el procedimiento "pero me quedó algo mal", no te entiendo como genero la clave de usuario que dices??? te cuento para que necesito el procedimiento, mis usuarios al dar click en un botón debe invocar el procedimiento de cargar el archivo plano, mi aplicativo está en c#.net y al dar click en el botón me arroja este error: Permiso EXECUTE denegado para el objeto 'xp_cmdshell', base de datos 'master', propietario 'dbo'.

Mi Procedimiento es el siguiente "claro es el tuyo":
CREATE PROCEDURE sp_consultarCampanaProc
AS
DECLARE @FileName varchar(50),
@bcpCommand varchar(2000)
--lugar donde lo vas a guardar
SET @FileName = REPLACE('c:\authors_'+CONVERT(char(8),GETDATE(),1)+'.txt','/','-')

SET @bcpCommand = 'bcp "Select * from campana "
queryout "'
SET @bcpCommand = @bcpCommand + @FileName + '" -U usuario-P clave* -c'

EXEC master..xp_cmdshell @bcpCommand
GO

claro que el select debe ser más complejo pero para entender lo del archivo mientras tanto así.

Por fis sigueme colaborando
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:inquietud primo

Publicado por Javier Guerrero (2 intervenciones) el 17/07/2007 00:12:51
mira prima es facil... primero cambia esto
Select * from campana
por esto

Select * from nombredetubasededatos..campana "deja los dos puntos ok"

segundo en la base de datos crea un usuario, ponte que el usuario se llame Guerrero y la clave sea primo. entonces seria asi.

SET @bcpCommand = @bcpCommand + @FileName + '" -U Guerrero-P primo -c'

estas a punto que te salga bien. solo pon estos detalles.

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:inquietud primo

Publicado por Isaias (3308 intervenciones) el 17/07/2007 01:36:46
Javier

El problema esta en la EJECUCION del store SP_CMDSHELL, solamente los usuarios miembros de SYSADMIN, pueden ejecutar este store de sistema, a menos claro, que cambien el PROXY y se ejecute en otro entorno de usuario.
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:inquietud primo

Publicado por sandra (2 intervenciones) el 17/07/2007 21:49:01
Hola, realizé esos cambios y todavía me sale: Permiso EXECUTE denegado para el objeto 'xp_cmdshell', base de datos 'master', propietario 'dbo'.

lo otro es que si la base de datos está en el servidor al crear un usuario, no me pondrá problema???

Cómo puedo arreglar el error que me saca.

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

RE:inquietud primo

Publicado por Javier Guerrero (4 intervenciones) el 17/07/2007 23:45:55
ya el problemas es de permisos. debes crear un usuario
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:inquietud primo

Publicado por Isaias (3308 intervenciones) el 18/07/2007 00:34:00
"Primos"

Les digo que el XP_CMDSHELL solo lo pueden ejecutar aquellos usuarios que pertenezcan al rol SYSADMIN, ¿porque no me hacen caso?.

O en su defecto "Prima", deberas cambiar el PROXY de quien ejecuta el xp_cmdshell por un usuario que tenga los permisos suficientes para dicha ejecucion.
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