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)
-   -   Filter en fkCalculated (https://www.clubdelphi.com/foros/showthread.php?t=54489)

MaMu 20-03-2008 15:20:47

Filter en fkCalculated
 
Tengo una pregunta, se puede aplicar un filtro a un campo calculado?

Código Delphi [-]
MiQuery.Filtered:=False;
MiQuery.Filter:='mi_campo_calculado<>"de_un_texto"';
MiQuery.Filtered:=True;

Saludos

pcpower 20-03-2008 15:27:09

Hola!
NO, no se puede, te dá un error no se cuanto. Si usas ClientDatasets la solución es pasar el campo calculado a uno de tipo InternalCalc, que se almacena en memoria, pero no en la base de datos. Otra manera, si no usas ClientDatasets, sería que el campo calculado sea calculado en la propia base de datos.
Saludos, Marcelo.

MaMu 20-03-2008 15:46:50

Cita:

Empezado por pcpower (Mensaje 274351)
Hola!
NO, no se puede, te dá un error no se cuanto. Si usas ClientDatasets la solución es pasar el campo calculado a uno de tipo InternalCalc, que se almacena en memoria, pero no en la base de datos.

No, no estoy usando ClientDataset. El resultado de la consulta, lo tomo directamente de la db mediante un Query.

Cita:

Empezado por pcpower (Mensaje 274351)
Otra manera, si no usas ClientDatasets, sería que el campo calculado sea calculado en la propia base de datos.
Saludos, Marcelo.

El tema es que el campo calculado, me muestra el resultado de consanguineidad de personas (padre, madre, hermano/a, medio hermano/a P/M, etc.) lo que me complicaría hacer las subconsultas, ya que el filtro que quiero aplicar, es mostrar todos, o solo los consanguíneos o parientes.

Gracias pcpower, voy a intentar hacer subconsultas de subconsultas de subconsultas!!! :eek:

Saludos

pcpower 20-03-2008 16:04:26

Hola!

Si no se te ocurre nada más, podés usar ClientDatasets igual conectando cualquier Query, como el que ya tenés, lo ideal son los unidireccionales del tipo dbexpress. Si no hay disponible un driver específico para tu base en dbexpress usás el OpenODBCExpress. De todos modos el ClientDataset se conecta con cualquier TQuery o DataSet a traves de un DataSetProvider. No es necesario que pases toda tu aplicación a DataSnap sino solo lo uses para esta tabla en particular.
En fin... DataSnap está muy bueno!, aunque también toma trabajo agarrarle la mano...

Saludos.

MaMu 20-03-2008 19:55:12

Utilizando un ClientDataSet enlazado al Query de la consulta en cuestion. Ahora el delpligue de datos usando el DBGrid son tomados del ClientDataSet, aplicando el filtro sobre un Campo Calculado sin ningún tipo de problemas.

Código Delphi [-]
ClientDataSet.Filetered:=False;
ClientDataSet.Fileter:='mi_campo_calculado<>'''+var_text+'''';ClientDataSet.Filtered:=True;

Pero cuando lo ejecuto en otra PC, me tira el siguiente error: ERROR LOAD MIDAS.DLL Porque?




Saludos

MaMu 22-03-2008 03:40:06

Sigo probando, pero el error Error Load MIDAS.DLL, aun persiste.

Por que?

MaMu 22-03-2008 07:28:04

SOLUCIONADO

Copie el MIDAS.DLL a %windows%system32 de la PC cliente y asunto solucionado.

pcpower 23-03-2008 23:48:39

Hola!

Me fui a San Pedro y los dejé ..:)
Te comento que te conviene siempre incluír Midas en la aplicación para evitar quilombos. Esto se hace Incluyendo la librería MIDASLIB en el proyecto, así no hay que mandar la dll por separado

program ;
uses
Forms,
midaslib,
USplash in 'USplash.pas' {SplashForm},
about in 'about.pas' {Aboutx},
xxx in 'xxx.pas' ... etc etc etc...

El único drawback que tendría esto es si querés actualizar la librería midas a la ultimísima versíon, ya que no lo podrías hacer y te confomarías con la que viene con tu versión de Delphi.

Anyway, si quieren la última versión de la dll y se conforman registrandola en cada equipo habitualmente se baja de:
http://www.distribucon.com/midas.aspx

Saludos, Marcelo.


La franja horaria es GMT +2. Ahora son las 16:36:03.

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