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

Ayuda con resultado en en txt

Estas en el tema de Ayuda con resultado en en txt en el foro de SQL Server en Foros del Web. Saludos, bueno tengo un problema todos los dias realizo un procedimiento que este a su vez me hace una consulta amis tablas, pero me gustaria ...
  #1 (permalink)  
Antiguo 13/12/2005, 10:32
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Ayuda con resultado en en txt

Saludos, bueno tengo un problema todos los dias realizo un procedimiento que este a su vez me hace una consulta amis tablas, pero me gustaria saber si hay alguna forma de que esa consulta me la arrojara en un archivo .txt si alguien sabe de algun modo les agradeceria la informacion
  #2 (permalink)  
Antiguo 14/12/2005, 18:08
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Revisa la parte de DTS, con eso puedes hacer una tarea que haga la exportación. El punto "malo" es que generalmente eso se ejecuta calendarizado, no por demanda.

Revisa si BCP (un programa incluído con las herramientas de sql server)te lo permite, puede leer de archivos de texto hacia la DB, pero no recuerdo si se puede en sentido inverso.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 15/12/2005, 08:00
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Cita:
Iniciado por Mithrandir
Revisa la parte de DTS, con eso puedes hacer una tarea que haga la exportación. El punto "malo" es que generalmente eso se ejecuta calendarizado, no por demanda.

Revisa si BCP (un programa incluído con las herramientas de sql server)te lo permite, puede leer de archivos de texto hacia la DB, pero no recuerdo si se puede en sentido inverso.
Gracias amigo lo realice con los DTS como me lo recomiendas, aunque como puntualzas me lo hace calendarizado, pero bueno por el momento me saco del problema de ante mano muchas gracias
  #4 (permalink)  
Antiguo 15/12/2005, 09:37
 
Fecha de Ingreso: septiembre-2005
Mensajes: 43
Antigüedad: 18 años, 7 meses
Puntos: 0
/*********************************************/
/*********************************************/
/** Les Paso mi Aportación respecto a este Tema espero **/
/** Que les Ayude *******************************/
/*********************************************/

/*

SP_Resp_Tabla_Disco '\\Servidor_1\F$\Resp\','Nom_Tabla','ArchTexto.Txt ','sa','1','Ejemplo'


Nota : Decripcion de los Parametros

1) Ruta donde se dejara la información de la Tabla que esta en SQL-Server
2) Nombre de la Tabla en SQL-Server
3) Nombre con el que quieres que se quede el archivo de Text
4) Usuario con derechos de Admin
5) Password del usuario
6) Nombre de la BD del Servidor

Ejemplo

El ejecutar el procedimiento

SP_Resp_Tabla_Disco

Respaldara la tabla a TXT

El ejecutar el procedimiento

SP_Recupera_TxT_BD

Sube la información de TXT a SQL-Server

Los parametros que tiene el BCP son para que la tabla ya exista en
el servidor en el que subiras la tabla txt.


Si quieres que se cree te lo dejo de tare

*/
If Exists(Select *
From Sysobjects
Where Name = 'SP_Resp_Tabla_Disco')
Drop Proc SP_Resp_Tabla_Disco
Go
Create Proc SP_Resp_Tabla_Disco
@Ruta Varchar(100),
@TablaSQL Varchar(100),
@NomArchTXT Varchar(100),
@Login Varchar(100),
@Password Varchar(100),
@NomBD Varchar(100)
AS
Begin
Declare
@Text1 Varchar(100),
@Text2 Varchar(100),
@result Int,
@Bodega Varchar(10)

select @Text1 = 'dir '+ ltrim(rtrim(@Ruta)) + ltrim(rtrim(@NomArchTXT))

EXEC @result = master..xp_cmdshell @text1

IF (@result > 0 )
BEGIN
select @Text2 = 'bcp '+ltrim(rtrim(@NomBD))+'..'+ltrim(rtrim(@TablaSQL) )+' out '
select @Text2 = @Text2 + ltrim(rtrim(@Ruta)) + ltrim(rtrim(@NomArchTXT))
select @Text2 = @Text2 + ' -c -U'+ltrim(rtrim(@Login))+' -P'++ltrim(rtrim(@Password))

EXEC master..xp_cmdshell @Text2

Print 'R e s p a l d a d o'

EXEC @result = master..xp_cmdshell @Text1
END
End
Go
Grant All on SP_Resp_Tabla_Disco to Public

-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------

/*

SP_Recupera_TxT_BD '\\Servidor_1\F$\Resp\','Nom_Tabla','ArchTexto.Txt ','sa','1','Ejemplo'

*/

If Exists(Select *
From Sysobjects
Where Name = 'SP_Recupera_TxT_BD')
Drop Proc SP_Recupera_TxT_BD
Go
Create Proc SP_Recupera_TxT_BD
@Ruta Varchar(100),
@TablaSQL Varchar(100),
@NomArchTXT Varchar(100),
@Login Varchar(100),
@Password Varchar(100),
@NomBD Varchar(100)
AS
Begin
Declare
@Text1 Varchar(100),
@Text2 Varchar(100),
@result Int,
@Bodega Varchar(10)

select @Text1 = 'dir '+ ltrim(rtrim(@Ruta)) + ltrim(rtrim(@NomArchTXT))

EXEC @result = master..xp_cmdshell @text1

IF (@result <= 0 )
BEGIN
select @Text2 = 'bcp '+ltrim(rtrim(@NomBD))+'..'+ltrim(rtrim(@TablaSQL) )+' in '
select @Text2 = @Text2 + ltrim(rtrim(@Ruta)) + ltrim(rtrim(@NomArchTXT))
select @Text2 = @Text2 + ' -c -U'+ltrim(rtrim(@Login))+' -P'++ltrim(rtrim(@Password))

Print 'R e s p a l d a n d o'

EXEC @result = master..xp_cmdshell @Text2
END
End
Go
Grant All on SP_Recupera_TxT_BD to Public
  #5 (permalink)  
Antiguo 15/12/2005, 10:37
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Cita:
Iniciado por Gabriel Sanchez
/*********************************************/
/*********************************************/
/** Les Paso mi Aportación respecto a este Tema espero **/
/** Que les Ayude *******************************/
/*********************************************/

/*

SP_Resp_Tabla_Disco '\\Servidor_1\F$\Resp\','Nom_Tabla','ArchTexto.Txt ','sa','1','Ejemplo'


Nota : Decripcion de los Parametros

1) Ruta donde se dejara la información de la Tabla que esta en SQL-Server
2) Nombre de la Tabla en SQL-Server
3) Nombre con el que quieres que se quede el archivo de Text
4) Usuario con derechos de Admin
5) Password del usuario
6) Nombre de la BD del Servidor

Ejemplo

El ejecutar el procedimiento

SP_Resp_Tabla_Disco

Respaldara la tabla a TXT

El ejecutar el procedimiento

SP_Recupera_TxT_BD

Sube la información de TXT a SQL-Server

Los parametros que tiene el BCP son para que la tabla ya exista en
el servidor en el que subiras la tabla txt.


Si quieres que se cree te lo dejo de tare

*/
If Exists(Select *
From Sysobjects
Where Name = 'SP_Resp_Tabla_Disco')
Drop Proc SP_Resp_Tabla_Disco
Go
Create Proc SP_Resp_Tabla_Disco
@Ruta Varchar(100),
@TablaSQL Varchar(100),
@NomArchTXT Varchar(100),
@Login Varchar(100),
@Password Varchar(100),
@NomBD Varchar(100)
AS
Begin
Declare
@Text1 Varchar(100),
@Text2 Varchar(100),
@result Int,
@Bodega Varchar(10)

select @Text1 = 'dir '+ ltrim(rtrim(@Ruta)) + ltrim(rtrim(@NomArchTXT))

EXEC @result = master..xp_cmdshell @text1

IF (@result > 0 )
BEGIN
select @Text2 = 'bcp '+ltrim(rtrim(@NomBD))+'..'+ltrim(rtrim(@TablaSQL) )+' out '
select @Text2 = @Text2 + ltrim(rtrim(@Ruta)) + ltrim(rtrim(@NomArchTXT))
select @Text2 = @Text2 + ' -c -U'+ltrim(rtrim(@Login))+' -P'++ltrim(rtrim(@Password))

EXEC master..xp_cmdshell @Text2

Print 'R e s p a l d a d o'

EXEC @result = master..xp_cmdshell @Text1
END
End
Go
Grant All on SP_Resp_Tabla_Disco to Public

-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------

/*

SP_Recupera_TxT_BD '\\Servidor_1\F$\Resp\','Nom_Tabla','ArchTexto.Txt ','sa','1','Ejemplo'

*/

If Exists(Select *
From Sysobjects
Where Name = 'SP_Recupera_TxT_BD')
Drop Proc SP_Recupera_TxT_BD
Go
Create Proc SP_Recupera_TxT_BD
@Ruta Varchar(100),
@TablaSQL Varchar(100),
@NomArchTXT Varchar(100),
@Login Varchar(100),
@Password Varchar(100),
@NomBD Varchar(100)
AS
Begin
Declare
@Text1 Varchar(100),
@Text2 Varchar(100),
@result Int,
@Bodega Varchar(10)

select @Text1 = 'dir '+ ltrim(rtrim(@Ruta)) + ltrim(rtrim(@NomArchTXT))

EXEC @result = master..xp_cmdshell @text1

IF (@result <= 0 )
BEGIN
select @Text2 = 'bcp '+ltrim(rtrim(@NomBD))+'..'+ltrim(rtrim(@TablaSQL) )+' in '
select @Text2 = @Text2 + ltrim(rtrim(@Ruta)) + ltrim(rtrim(@NomArchTXT))
select @Text2 = @Text2 + ' -c -U'+ltrim(rtrim(@Login))+' -P'++ltrim(rtrim(@Password))

Print 'R e s p a l d a n d o'

EXEC @result = master..xp_cmdshell @Text2
END
End
Go
Grant All on SP_Recupera_TxT_BD to Public
No me guarda los datos en el txt, me corre bien sin problemas pero me deja el archivo txt en blanco debo estar haciendolo mal
  #6 (permalink)  
Antiguo 20/12/2005, 13:02
 
Fecha de Ingreso: septiembre-2005
Mensajes: 43
Antigüedad: 18 años, 7 meses
Puntos: 0
mmmmmm, esta raro ?

si quieres iniciemos con el SP que baja la Información

Como lo estas ejecutando?
  #7 (permalink)  
Antiguo 21/12/2005, 09:01
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Cita:
Iniciado por Gabriel Sanchez
mmmmmm, esta raro ?

si quieres iniciemos con el SP que baja la Información

Como lo estas ejecutando?

bueno el sp que me enviaste lo ejecuto asi

exec SP_resp o estara mal
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 03:25.