Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Analogia con Clipper (https://www.clubdelphi.com/foros/showthread.php?t=11379)

JorgeBec 11-06-2004 23:20:39

Analogia con Clipper
 
otra pregunta Comunidad, tengo un problema, resultase que necesito hacer una funcion que obviamente sirva para varios procesos, y uno de los parametros seria enviarle un Tquery, o sease que ese parametro variara de acuerdo al proceso, siendo mas claro. Ejemplo

Prorrateo('qryVentas');
.
.
.
Prorrateo('qryVentas2');

Function Prorrateo(<pQuery>)
begin
dmDatos.pQuery.First;
....Mas lineas

end;

por ejemplo necesito recibir en pQuery qryVentas o qryVentas2, el problema es para que en la funcion prorrateo pQuery realmente tome qryVentas o qryVentas2...esto para quienes fuimos clipperos se podia hacer con un &pQuery (sino mal recuerdo), pero en Delphi???...espero me haya explicado...saludos

roman 11-06-2004 23:39:24

Simplemente declaras un parámetro de tipo TQuery:

Código Delphi [-]
procedure Prorrateo(Query: TQuery);
begin
end;

y le pasas cualquiera de los Query:

Código Delphi [-]
Prorrateo(qryVentas);
Prorrateo(qryVentas2);

etcétera

// Saludos

guillotmarc 11-06-2004 23:47:14

Hola Jorge.

Pues casi tienes bien el código, solo te falta indicar que el parámetro que pasas es de tipo TQuery (pasa directamente el Query, no una cadena con el nombre del Query para usarlo en una macro) ... y a correr :

Prorrateo(dmDatos.qryVentas); /* Pasas realmente el Query */
...
...
Prorrateo(dmDatos.qryVentas2);

Function Prorrateo(pQuery: TQuery) /* En el parámetro indicas que pasas un Query */
begin
pQuery.First; /* Puedes trabajar normalmente con el Query */
....
end;

NOTA: He puesto TQuery asumiendo que es un Query del BDE, pero deberias cambiarlo por TADOQuery, TSQLQuery, TIBQuery, ... si estas usando ADO, BDE, IBX, ...

Saludos.

JorgeBec 11-06-2004 23:47:59

Solo para aclarar Roman entonces de acuerdo al ejemplo que me das quedaria asi


procedure Prorrateo(Query: TQuery);
begin
dmDatos.Query.First;
....Mas lineas

end;


???

guillotmarc 12-06-2004 02:01:55

Hola.

No funcionaria ese código. En el ejemplo que te he propuesto tienes incluído como debes tratar el datamodule.

Saludos.


La franja horaria es GMT +2. Ahora son las 09:21:01.

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