Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-05-2007
Forest Forest is offline
Miembro
 
Registrado: may 2007
Posts: 30
Poder: 0
Forest Va por buen camino
Cómo puedo hacer un filtro booleano en paradox?

Hola, tengo un problema para hacer un filtro booleano en paradox (en Delphi 6), uso el código:

Código:
mitabla.filter:='micampo = ' + QuotedStr('TRUE');
Pero me manda un error que dice: 'Type mismatch in expression'

después intenté simplemente con:

Código:
mitabla.filter:='micampo = TRUE';
Pero me manda el mismo error x_X.

Aunque cuando compila no manda ningún error, al intentar hacer el filtro me manda el error y marca como si el error estuviera en la línea de abajo de la funcion que usa el código, lo explico rapidamente:

Código Delphi [-]
function filtro
begin
   mitabla.filter:='micampo = ' + QuotedStr('TRUE');
end

procedure bla
begin
   filtro();
   tabla.first;
   blablabla;
end;

La línea donde me marca el error es en tabla.first, y si quito la llamada a la funcion filtro entonces no hay ningún error.

Espero puedan ayudarme U.U...

Byes!

Última edición por dec fecha: 23-05-2007 a las 02:01:39.
Responder Con Cita
  #2  
Antiguo 23-05-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
A veces algunas tablas necesitan esto:
Código Delphi [-]
 mitabla.filter:= ' micampo = "TRUE"  ';
Pasa en access, pruebalo, tal vez sirva.
Saludos
Responder Con Cita
  #3  
Antiguo 23-05-2007
Forest Forest is offline
Miembro
 
Registrado: may 2007
Posts: 30
Poder: 0
Forest Va por buen camino
No... parece que no funciona me dice que las comillas no son aceptadas para expresiones de filtros u.u... Ya las probé de algunas formas, como sin apostrofes, dentro de un quotedstr con y sin apostrofes, etc. En resumen creo que esa no es la forma, pero gracias.

Alguien más que tenga una idea de como hacerlo?

Byes!
Responder Con Cita
  #4  
Antiguo 23-05-2007
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 22
sitrico Va por buen camino
Otra idea (aqui no tengo como probar)

Código Delphi [-]
mitabla.filter:= 'micampo'

Código Delphi [-]
mitabla.filter:= 'micampo = 1'
// el 1 = true

ó tambien puedes usar el evento OnFilterRecord (más complicado)
__________________
Sitrico
Responder Con Cita
  #5  
Antiguo 23-05-2007
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 22
sitrico Va por buen camino
Otra idea (aqui no tengo como probar)

Código Delphi [-]
mitabla.filter:= 'micampo'

y

Código Delphi [-]
mitabla.filter:= 'micampo = 1'
// el 1 = true

ó tambien puedes usar el evento OnFilterRecord (más complicado )
__________________
Sitrico
Responder Con Cita
  #6  
Antiguo 23-05-2007
Forest Forest is offline
Miembro
 
Registrado: may 2007
Posts: 30
Poder: 0
Forest Va por buen camino
Si había probado con ambas opciones pero no funcionó x_x, creo que es algo de que el Delphi no jala correctamente los valores del Blob binary (el campo booleano), tampoco puedo mostrar los valores de este tipo de campo en dbgrid´s.

Pero bueno, cambié el tipo del campo a Alfanumérico y compararé si el valor es S o N... creo que será la forma menos complicada.

Muchas gracias por la ayuda igualmente, pero si alguien de todas formas conoce la forma en que se hacen estos filtros no dude en postearlo <.<

Byes!
Responder Con Cita
  #7  
Antiguo 23-05-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Cita:
Escrito por: Forest.
pero si alguien de todas formas conoce la forma en que se hacen estos filtros no dude en postearlo
Me suena a que no confias en nosotros
Bueno, cuando aprenda, te ayudo.
Saludos
Responder Con Cita
  #8  
Antiguo 24-05-2007
aprendiz2 aprendiz2 is offline
Miembro
 
Registrado: dic 2006
Posts: 70
Poder: 18
aprendiz2 Va por buen camino
la respuesta...

Cita:
Empezado por Forest
el Delphi no jala correctamente los valores del Blob binary (el campo booleano),
El "Blob Binary" no es un campo booleano... El campo booleano en la tabla se llama Logical ( se pone la "L" ).....

( lo se porque tambien he caido en esa... ! jaja !. Pongo la "B" pensando en Booleano... pero la "B" es para Blob Binary.. que es otra cosa !!! )

Sugerencia, prueba hacer el cambio de la definicion en la tabla, y despues
prueba directo en el Object Inspector poner el filtro, (cuando estas en modo de "edicion" en Delphi). Poner la condicion en la propiedad Filter, sin comillas ni nada, para probar:

NombredelCampo=true ( esto lo escribes en la propiedad. Si funciona ahi, todo estata bien en el programa.

En el programa escribes

TablaX.Filter := 'nombreDelCampo = true' ;

Asi de sencillo, sin el quotedString, ni dobles comillas. Tal y como haces la prueba en el ObjectInspector, asi debe funcionar en el programa.


Suerte, ojala te sirva !
Responder Con Cita
  #9  
Antiguo 24-05-2007
aprendiz2 aprendiz2 is offline
Miembro
 
Registrado: dic 2006
Posts: 70
Poder: 18
aprendiz2 Va por buen camino
y recuerda...

...y recuerda.. poner la propiedad Filtered en true, para que tenga efecto el filtro. Tambien un Table.Refresh viene bien despues de quitar poner / quitar filtros, sobre todo en multiusuario...

( se que son tonteras lo que escribo aqui, pero como a mi a veces se me olvida hacerlo, pues se me ocurre que quizas a otra persona tambien se le olvide hacerlo de vez en cuando ! ).

P.D. para mi es mucho mejor usar el evento OnFilterRecord, puedo hacer filtros que son mas complejos ahi, que no podria hacerlos en el "Filter", y a mi se me hace mas sencillo poner la logica en el OnFilterRecord, que en el Filter, pero como todo en la vida, es cuestion de gustos y costumbres.


Saludos otra vez
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
Como Puedo Hacer???????? jeshu252006 Conexión con bases de datos 7 27-10-2006 17:00:35
Como puedo hacer una coneccion ssh quetzal Internet 0 15-07-2004 03:33:39
como puedo hacer una conexion ssh quetzal Varios 0 09-07-2004 05:23:59
Como hacer un filtro con meses Ricsato Conexión con bases de datos 3 09-12-2003 14:07:16
Como puedo hacer esto ? IVAND Conexión con bases de datos 1 21-07-2003 23:23:24


La franja horaria es GMT +2. Ahora son las 00:28:28.


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