PDA

Ver la Versión Completa : ¿Cómo ejecutar un Query con TADOQuery?


Draco
04-05-2004, 00:22:01
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
ADOQuery1.ExecSQL;
ADOQuery1.Active:=True;


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

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:


//************** en la dll
Function CualquierCosa(datos : TDataSet);

Begin
ProcesarLosDatos;
end;

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

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



Hasta luego.

;)