Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Visualizar el resultado de una consulta en un TXT (https://www.clubdelphi.com/foros/showthread.php?t=15444)

dsa132132 23-10-2004 01:21:02

Visualizar el resultado de una consulta en un TXT
 
Hola gente!

Me gustaría saber cómo visulalizar el resultado de una consulta SQL en un .TXT y saber si daría lo mismo que la SQL estuviera en el DataModule o escrita por código desde el mismo formulario.

Muchas Gracias.

jhonny 23-10-2004 01:42:01

Cita:

Me gustaría saber cómo visulalizar el resultado de una consulta SQL en un .TXT y saber si daría lo mismo que la SQL estuviera en el DataModule o escrita por código desde el mismo formulario.
Es algo confuso lo que dices, o yo soy el unico que no entiende...

Si lo que quieres es escribir un sql en un archivo txt y luego cargarlo en runtime a un componente TQUery para luego ejecutarlo puedes usar lo siguiente:
Código Delphi [-]
Query.SQL.LoadFromFile(NombreDelArchivo.txt)

Y para tu segunda inquietud... pues si daria lo mismo.:cool:

dsa132132 23-10-2004 11:37:24

Hola jhonny

Tal vez me he explicado mal, lo siento. Lo que quisiera hacer es visulalizar el resultado de la query (que yo hago en delphi) en un fichero .txt

Por ejemplo; En mi aplicación ejecuto la query (' select nombre from alumnos ') y quisiera que el resultado de esa query ( todos los nombres de la tabla alumnos) se visualice en un fichero txt.

Espero que esta vez me haya explicado (mas o menos) bien.

Gracias por tu interes y por la respuesta anterior, aunque no era lo q buscaba he aprendido algo mas. :D

Muchas gracias.

marcoszorrilla 23-10-2004 13:59:19

Prueba con este otro ejemplo a ver si es lo que pides:
Código Delphi [-]
 implementation
 
 {$R *.DFM}
 procedure QueryToCSV(QueryName:TQuery);
 var
 i,j: integer; (*i-field, j-record*)
 s: string; (*Record string*)
 theStringList: Tstringlist; (*temp storage*)
 
 begin
 s:='';
 theStringList:=TStringList.Create;
 
   with QueryName do
   begin
   try
   Active:=True;
   except
   showmessage('No puedo abrir la consulta '+ Name);
   end;
 
     for j:=0 to (RecordCount-1) do
     begin
       s:='';
         for i:=0 to (FieldCount-1) do
         begin
         (*add next field w/comma delimiter*)
         s:=s+(Fields[i].AsString)+',';
         end; (*i for*)
       theStringList.add(s);
       Next;
     end; (*i for*)
 
   theStringList.savetofile('D:\MiTxt.csv'); (*memo1.lines.*)
   Showmessage('El Archivo MiTxt.CSV se creó con exito.');
   close;
   end; (*with*)
 end; (*BackupTableToCSV*)
 
 procedure TForm1.Button1Click(Sender: TObject);
 begin
  QueryToCSV(Query1);
 end;

Un Saludo

jhonny 23-10-2004 18:59:16

mmm, la respuesta de marcos es fenomenal, pero si yo estuviera usando BDE tambien pensaria en usar entonces el TBathMove Con este componente puedo escribir facilmente un txt.

dsa132132 24-10-2004 13:01:58

Muchas Gracias a ambos!!

Todavía no he tenido la ocasión de probar las soluciones que me habéis dado, en cuanto pueda os dire como he quedado.

Miraré en la ayuda como funciona el componente TBathMove, por ver si puedo simplificar al máximo la solucion pq no tengo demasiada experiencia en Delphi.

Gracias y Saludos.

dsa132132 26-10-2004 19:47:15

Saludos! Por fin he podido probar las soluciones que me disteis!

Lo que pasa es que soy bastante novato y la solución de marcoszorrilla no la puedo ejecutar xq me da un monton de errores que no se a que se deben.

Tambien he probado la de jhonny con el TBathMove pero no conozco el componente y no saco nada en claro de la ayuda de delphi. Me podrías explicar cómo hacerlo?

Muchas gracias, yo seguiré intentando todo mientras llega vuestra ayuda.:confused:

roman 26-10-2004 20:23:57

Cita:

Empezado por dsa132132
Lo que pasa es que soy bastante novato y la solución de marcoszorrilla no la puedo ejecutar xq me da un monton de errores que no se a que se deben.

En cambio yo nada más copié y pegué su código y coloque un TQuery con su respectiva consulta y me funcionó de maravilla.

Como no nos digas que errores te marca será difícil que te demos mayores explicaciones.

El que tú seas novato no nos hace a nosotros adivinos ;)

// Saludos

dsa132132 26-10-2004 21:53:52

Hola Roman.
Tienes razón, mi pregunta no era muy concreta... :D

Te explico, tengo una Query (Qvisabonado) en un Data Module (DMprova1) y si copio y pego tal cual (cambiando QueryName por Mprova1.Qvisabonado) me

dice :[Error] txt.pas(30): Undeclared identifier: 'TQuery'

en la línea de : procedure QueryToCSV(QueryName:TQuery); en implementation.

No se que debo poner en ese QueryName porque no me acepta Mprova1.Qvisabonado y tampoco se si debo definirla antes en Public o Private.

Espero que esta vez me haya explicado mejor. Muchas gracias por vuestro interes! :)

marcoszorrilla 26-10-2004 21:57:59

El Tquery es un componenete que debes de poner en tu formulario lo tienes en la paleta DataAccess y se presente con el texto SQL-

Un Saludo.

roman 26-10-2004 21:59:22

El error se produce porque al no tener las componentes TQuery en el formulario donde declaras QueryToCsv, no se incluyen automáticamente las unidades necesarias. Basta que incluyas manualmente la unidad DbTables.

// Saludos

dsa132132 26-10-2004 22:46:02

Ya lo tengo, me faltaba lo que decíais. Muchas gracias por vuestra ayuda!

Saludos.


La franja horaria es GMT +2. Ahora son las 09:58:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi