Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Campo calculado en query dinámica (https://www.clubdelphi.com/foros/showthread.php?t=17670)

santi 17-01-2005 17:50:52

Campo calculado en query dinámica
 
Hola a todos,
es posible crear un campo calculado resultado de una query creada en tiempo de ejecución y mostrarlo en un dbgrid?
Gracias.
Santi.

marcoszorrilla 17-01-2005 21:35:56

Si entiendo bien lo que pides:
Código SQL [-]
 Select Unidades, Precio, (unidades * Precio) As Total
 From MiTabla

En este caso Total sería un campo calculado.

Un Saludo.

santi 17-01-2005 21:49:41

Hola, pues creo que no me he explicado muy bien...
mi duda es:
necesito algo del estilo SELECT campo1, campo2, micampo from tabla (micampo no existe en la tabla),
entonces lo que muestra mi grid deben ser 3 columnas, campo1, campo2 y en micampo true o false segun los valores de campo1 y campo2.
No sé si lo he explicado mejor.
Gracias de antemano.
PD. La query es dinámica.

Toñico 18-01-2005 11:43:14

Hola,
si el campo calculado va a existir siempre lo mas facil es que lo añadas directamente al editor de campos del query:
Boton derecho sobre el componente ADOQuery > Fields Editor > Boton derecho y New Field.
Una vez que lo tengas, ya no tienes que añadirlo en el sql del Query, solo en el evento OnCalcFields del query le asignas el valor que desees dependiendo de las condiciones que le pongas.

Espero que te sirva de algo, un saludo

santi 18-01-2005 18:39:49

Gracias Toñico, pero el problema es que la query la creo mediante
Query := TQuery.Create(self);

Saludos.
Santi.

Delfino 18-01-2005 20:18:01

Seguro q la auery tiene el metodo Addfield o query.fields.add(..), al nuevo field le das el tipo fkCalculated, queda asignar un procedimiento con el codigo de los calculos al evento onclaclfields de la query de la siguiente forma:

Código:

query.oncalcfields := procedimiento;
y descativarlo si se quiere

Código:

query.oncalcfields := nil;

santi 18-01-2005 21:55:39

Ok, muchísimas gracias. Lo probaré.
Saludos.
Santi.


La franja horaria es GMT +2. Ahora son las 16:14:49.

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