Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   ¿Cómo ejecutar un Query con TADOQuery? (https://www.clubdelphi.com/foros/showthread.php?t=9838)

Draco 04-05-2004 00:22:01

¿Cómo ejecutar un Query con TADOQuery?
 
Quisiera me ayudaran en la forma en cómo se anexa un Query a un TADOQuery, cómo se ejecuta y cómo se sacan los resultados generados para pasarlos como parametros a una funcion.


__cadetill 04-05-2004 07:42:51

No se si te he entendido. Por Query te refieres a una sentencia SQL o a un TQuery?

Bueno, me imagino que lo primero, así que....
El TADOQuery tiene una propiedad SQL de tipo TStrings para ese menester. Puedes ponerlo en diseño o en ejecución, como quieras.

Por otro lado, si es una Query que retorne resultados (Select) tienes el método Open o Active, y si no netorna (Insert, Delete,....) el método ExecSQL

A partir de aquí, lo demás ya es similar a una tabla (TADOTable) para acceder a los valores de los campos (si es una select)

Espero te sirva

Draco 04-05-2004 18:30:47

lo estoy haciendo de la siguiente manera:

Query:='Select Nombre, Cantidad from Producto';
ADOQuery1.Active:=false;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(Query);
ADOQuery1.ExecSQL;
ADOQuery1.Active:=True;

de lo que acabo de hacer me genera los resultados obtenidos, mi pregunta es como saco todos a la vez para mandarlos como parametro a una funcion (y no sacando uno por uno con los campos activos o Fields).

(Lo que pasa es que estoy pasando parametros entre DLL y es muy pesado estar mandando registro por registro de la consulta, por eso quiero saber si puedo mandar todos a la vez)

jachguate 04-05-2004 19:11:14

Cita:

Empezado por Draco
ADOQuery1.ExecSQL;
ADOQuery1.Active:=True;

Esto no es necesario... quita la linea que tiene el ExecSQL.

Cita:

Empezado por Draco
de lo que acabo de hacer me genera los resultados obtenidos, mi pregunta es como saco todos a la vez para mandarlos como parametro a una funcion (y no sacando uno por uno con los campos activos o Fields).

(Lo que pasa es que estoy pasando parametros entre DLL y es muy pesado estar mandando registro por registro de la consulta, por eso quiero saber si puedo mandar todos a la vez)

Hola. Si la dll la programas también en delphi, podes enviarle el DataSet como parámetro...

Algo como:

Código Delphi [-]
//************** en la dll
Function CualquierCosa(datos : TDataSet);

Begin
  ProcesarLosDatos;
end;

//************** la llamada:

  ....
  ADOQuery1.Active:=True;
  CualquierCosa(AdoQuery1);

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 03:49:45.

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