PDA

Ver la Versión Completa : como generar txt de un query en SQL??


danytorres
02-08-2005, 17:19:07
Buenos dias amigos tengo un gran problema, necesito generar un txt dedes un query de SQL Server,

ejemplo:

_____________________________
Select *
from fecha
Where cod = 1
______________________________

como puedo colocar una instruccion en el query que ma genere un txt.

lucasarts_18
02-08-2005, 17:28:34
Hola:

Al parecer lo que quieres es guardar en un archivo TXT la instrucción SQL.
Sí es así te recomiendo crear un archivo TXT usando la clase File y luego de crear el archivo le asignes el String del Query..

Espero que sea algo así :confused: .

Saludos.

Neftali [Germán.Estévez]
02-08-2005, 17:28:38
(1) Copy/Paste
(2) Generar un DTS

¿Necesitas hacerlo desde un programa Delphi?
No he entendido bien si quieres guardar la sentencia SQL o el resultado.

danytorres
02-08-2005, 17:32:53
generar el txt debe ser desde SQL Server sin utilizar Delphi.

YaninaGenia
02-08-2005, 17:40:29
Vas a tener que agregar un componente SaveDialog

procedure TForm1.ExportaratxtClick(Sender: TObject);
var
archivo : textfile;
x : string;
cont : integer;
begin
cont := 0;
if not query1.IsEmpty then
begin
try
savedialog1.DefaultExt := 'cvs';
savedialog1.Filter := 'Text files (*.cvs)|*.cvs';
if savedialog1.Execute then
if savedialog1.FileName <> emptystr then
begin
assignfile(archivo,savedialog1.filename);
rewrite(archivo);
writeln(archivo,'NOMBRE','APELLIDO','EDAD');
//Aca van tantos nombres como columnas tenga tu consulta,
// serán los que aparezcan en el encabezado del CSV.
query1.First;
while not (query1.Eof) do
begin
x := query1.fieldbyname('NOM').AsString + ';'
+ query1.fieldbyname('APE').AsString + ';'
+ query1.fieldbyname('EDAD').AsString;
//ACA VAN LOS NOMBRES QUE TIENEN LAS COLUMNAS
// EN LA BASE DE DATOS
writeln(archivo,x);
query1.Next;
cont := cont + 1;
end;
flush(archivo);
closefile(archivo);
showmessage('Total de archivos exportados: '+inttostr(cont));
end;
except
on e : exception do
showmessage(e.Message);
end;
end;
end;

Cualquier cosa me preguntas.

Yanina Genia

danytorres
02-08-2005, 17:44:06
Gracias por responder YaninaGenia, pero estas utilizando delphi y yo debo realizar el txt sin utilizar esta herramienta. Solo debo usar SQL Server.

danytorres
02-08-2005, 17:49:57
Gracias por responder Neftali, pero lo que quiero es guardar el resultado del query en un txt, solamente usando SQL Server sin utilizar Delphi. Agradesco su ayuda.

roman
02-08-2005, 17:49:58
Recuperé el mensaje de YaninaGenia pues aun cuando la respuesta no correspondía, dejaba fuera de contexto el penúltimo mensaje de danytorres.

EDITO:

También, dado que el mensaje pide una solución específica para SQL Server, muevo este hilo del foro Varios donde no corresponde.

// Saludos

Neftali [Germán.Estévez]
02-08-2005, 17:51:21
(1) Crea un nuevo DTS (Servicios de Transformacion de Datos)
(2) Añade una conexion (configura SQL Server)
(3) Añade un Fichero de salida (configura el TXT que quieras)
(4) Añade una Tarea de transformar Datos y selecciona como conexion origen la de SQL server y como destino el fichero TXT. Introduce la consulta que deses y al ejecutarlo tendrá la exportación.

danytorres
02-08-2005, 17:53:50
Gracias por responder Neftali, pero no entendi nada creo que esa es la solucion pero sino es molestia podrias ser un poco mas especifico. Gracias.

Neftali [Germán.Estévez]
02-08-2005, 18:02:57
En el Administrador de SQL server (enterprise Manager) donde aparecen las Bases de Datos, un poco más abajo aparecen "Servicios de transformación de Datos"; Debes acceder ahí un crear uno nuevo tal y como te he dicho antes.

Haz alguna prueba y di dónde te quedas atascado.

Caro
03-08-2005, 15:49:32
Muchas Gracias YaninaGenia, era lo que necesitaba y me funciono todo muy bien.

__hector
05-08-2005, 20:36:03
Llego un poco tarde, pero...

Si abres el Query Analyzer, y ejecutas la consulta, debajo ves un grid con los datos. Puedes elegir la presentacion de esos datos, incluso sacarlos en un archivo de texto separado por comas. Para esto, elige en el menu Query, la opcion Results in Text (ctrl + T), o To file, segun sea cada caso.

Con eso te evitas tener que crear un dts de exportacion de datos para cualquier consulta que quieras hacer.