Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-04-2012
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Problema con Filter y campo boolean

Hola a todos,

tengo un problema que no logro comprender porque creo que es lo más sencillo del mundo pero no me funciona como quiero.

Tengo un ClientDataSet que está enganchado a un DataSetProvider y este a un AdoQuery, en el ClientDataSet quiero filtrar por el valor True de un campo Boolean, entonces pongo en el código lo siguiente:

Código Delphi [-]
ClientDataSet1.Filtered:=false;
ClientDataSet1.Filter:='Principal=True';
ClientDataSet1.Filtered:=True;

Pero no me devuelve ningún valor, ahora mismo la tabla tiene todos los registros a true menos uno, si en lugar de poner el filtro con true lo pongo con false me sale el único que registro que tengo en False, al revés me debería sacar todos los demás, ¿no?. No se me ocurre que puede estar pasando, si alguien sabe que puede ser agradecería la ayuda.

Por cierto, la base de datos esta en access, por si sirve de algo.

Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #2  
Antiguo 19-04-2012
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Hola de nuevo,

estoy haciendo pruebas y me encuentro con que si hago el filter directamente en el AdoQuery y luego activo el ClientDataSet entonces si me hace el filtro correctamente. Solo falla cuando hago el filter directamente en el Client.

Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #3  
Antiguo 19-04-2012
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Hola,

sigo haciendo pruebas y me encuentro con que si lo que pongo en filter es:

Código Delphi [-]
ClientDataSet1.Filter:='Not principal=False';

entonces si funciona , no se que les parece el asunto, a mi un poco raro.

Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #4  
Antiguo 19-04-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ElDioni.

Fijate de este modo:
Código Delphi [-]
var
  Value: Boolean;

procedure TForm1.btnFiltroClick(Sender: TObject);
begin
  with ClientDataSet1 do
  begin
    Filtered:= False;
    Value:= not Value;
    Filter:= 'Principal = ' + IntToStr(Integer(Value));
    Filtered:= True;
  end;
end;
En las pruebas funciona correctamente, mostrando alternativamente los campos verdaderos y falsos.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 19-04-2012
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Hola ecfisa, gracias por tu tiempo.

He estado probando lo que me propones pero me ocurre lo mismo que poniendo directamente escrita la consulta en el filtro (Filter:='Principal=true', cuando el valor es false me saca el registro correctamente pero para true no, no se porque ocurre, de momento lo tengo solucionado con lo que comentaba antes:

Código Delphi [-]
ClientDataSet1.Filter:='Not principal=False';
Pero que me parece extrañísimo el comportamiento.

Seguiré mirando a ver que puede ser, y si puedes arrojar algo de luz al asunto te lo agradezco.

Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #6  
Antiguo 19-04-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Si es realmente extraño...

Te hago unas consultas, ¿ Con que bd estas trabajando y de que tipo es el campo 'principal' ?

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 19-04-2012
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Te comento, sera mejor que te sientes antes de leer esto, las bases de datos están hechas en access 97, el campo Principal es un campo Si/No (boolean), yo creo que en alguna ocasión he realizado este tipo de acciones, no con esta tabla que es nueva, pero si con otras tablas y no he tenido este tipo de problemas, si hago la una consulta sencilla en access funciona bien, si lo hago desde el adoquery1 del que coge los datos el clientdataset lo hace bien, solo falla cuando lo hago desde el client, pero que si funciona si lo hago con el "not principal=false", stranger in the night.

Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Campo Boolean salga SI o NO tarco35 Conexión con bases de datos 3 16-02-2007 23:10:17
CheckBox y campo Boolean Nbull MySQL 2 01-02-2006 16:45:17
Campo Boolean en Interbase jgutti Firebird e Interbase 11 14-11-2005 10:43:28
Actualización de campo Boolean PINO72 Firebird e Interbase 1 09-02-2005 21:28:21


La franja horaria es GMT +2. Ahora son las 11:13:18.


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
Copyright 1996-2007 Club Delphi