Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-01-2007
juanpe juanpe is offline
Miembro
 
Registrado: oct 2004
Posts: 46
Poder: 0
juanpe Va por buen camino
Problema con boolean/integers = false

Buenas tardes y gracias de antemano por vuestro tiempo.
Mi problema es el siguiente:

Trabajo con Interbase 7.5 y tengo un campo booleano, el cual todos sus registros estan a null.

Si hago una select de aquellos registros cuyo dicho campo sea = false, la select es = 0, con true ocurre lo mismo.

Pues bien, cuando estoy rerriendo los campos de la select con la instruccion
query.fiedlbyname('nombredelcampo').as... string,integer... etc, todo ok hasta dar con el campo booleano, que me devuelve false.

Es decir interpreta que:
if query.fiedlbyname('nombredelcampo').asboolean = false then
....
y no deberia.

Bueno, pues para no perder tiempo y seguir trabajando digo, me creo el campo de tipo integer .

jajajaja, iluso de mi, cuando hago la instruccion

if query.fiedlbyname('nombredelcampo').asinteger = 0 then
....
(para registros = a null) me dice que es = false.
¿En que me estoy equivicando?

Gracias a todos. Perdon por el tocho y espero que me hayais entendido.
Responder Con Cita
  #2  
Antiguo 31-01-2007
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
pues porque primero debes validar que no sea null, por ejemplo

Código Delphi [-]
if not query.fieldbyname('campo').isnull then // si no es null
  if query.fieldbyname('campo').asboolean then //ahora si, si tiene un dato asignado revisamos si es verdadero o falso
Responder Con Cita
  #3  
Antiguo 01-02-2007
juanpe juanpe is offline
Miembro
 
Registrado: oct 2004
Posts: 46
Poder: 0
juanpe Va por buen camino
Muchas gracias luisgutierrezb, lo que pasa que yo sobreentendia que al tener valor ya implica que sea distinto de null .

Mañana lo pruebo y te cuento.

Gracias.
Responder Con Cita
  #4  
Antiguo 02-02-2007
juanpe juanpe is offline
Miembro
 
Registrado: oct 2004
Posts: 46
Poder: 0
juanpe Va por buen camino
Probado y funcionando .

Muchas gracias.
Responder Con Cita
  #5  
Antiguo 12-02-2007
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Creo que no bebes permitir a un campo boolena contenr valores nulos por qu ete va a cuasar dolores de cabezas que no lo vas poder solucionar jamas y es booleano es por es cierto o flaso (1, 0) entonces colocae valores.

por que veo ilogico un valor voleano qu eva atenr un valor desconocido(nulo) no se tu pero eso me parece una locura.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #6  
Antiguo 13-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
El valor null, ¿acaso no corresponde con el estado "Grayed" del TDBCheckBox?

Si el checkbox (que en definitiva usa un estado Boolean) tiene el valor indeterminado, no veo por qué no usarlo.

Todo dependerá del concepto a representar:
- "Factura Impresa" posibles valores TRUE / FALSE
- "Factura Recibida" posibles valores TRUE / FALSE / NO SE SABE (El cartero la trajo, pero está en el cajón, pendiente de ponerle el sello de entrada en la empresa).

En el último caso, puede ser interesante pedir un listado de todas las facturas que se han recibido, pero no tienen el sello de entrada en la empresa.... Los ayuntamientos y organismos oficiales seguro que usan mucho ese "estado"

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 13-02-2007 a las 12:55:51.
Responder Con Cita
  #7  
Antiguo 15-02-2007
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Cita:
Empezado por Lepe
El valor null, ¿acaso no corresponde con el estado "Grayed" del TDBCheckBox?

Si el checkbox (que en definitiva usa un estado Boolean) tiene el valor indeterminado, no veo por qué no usarlo.
De aqui radica algunos errores que cometemos a la hora de diseñar una base de datos que te interesa a ti el estado del chebox para diseñar la base de datos enfocate en la base de datos y luego te enfocas en la parte visual.

Lo del che box no es mas que una propiedad que si quieres sobrescribes los metodos que la manipulan y haces que haga lo que tu quieras. Pero ese no es el caso.

No mezclez chicha con limonada.

O van a aplicar la famosa idea de microsof meter el manejador de ventanas dentro del kernel del sistema operativo.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #8  
Antiguo 16-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
No estoy pensando en el CheckBox para diseñar la BBDD.

Al diseñar la BBDD necesito 3 estados para un campo: true / false / no sabe no contesta.

¿Por qué no usar estos valores en la BBDD?:
- 0
- 1
- NULL (como no sabe no contesta).

¿acaso no es lo mismo que usar los valores 0, 1, 2 para representar esos 3 estados?

Lo que no llego a comprender es esta frase:
Cita:
Empezado por rastafarey
por que veo ilogico un valor voleano qu eva atenr un valor desconocido(nulo) no se tu pero eso me parece una locura.
¿por qué?, ¿acaso no está implementado el valor NULL, como precisamente, un valor desconocido? ¿Por qué tengo que inventar otro valor para representar ese mismo concepto?.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #9  
Antiguo 16-02-2007
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Te aconcejo usar el caso de 0, 1, 2 y no el caso cuandos sea nulo ya que nulo no es nada(desconocido) y si debes tener mas cuidado a la hora de trabajar
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Icono de un ToolButton cuando Enabled=false speralta Varios 3 04-12-2006 19:16:42
problema delphi 2005 interbase boolean cuscus Conexión con bases de datos 7 19-04-2006 12:46:20
True, False en un qreport Masu Impresión 2 02-05-2005 21:47:13
Enable:=False; Pero sin que se me ponga gris. nicolasdom Varios 4 13-01-2005 17:43:35
True y False MRSAM MySQL 2 12-06-2003 23:36:10


La franja horaria es GMT +2. Ahora son las 18:12:59.


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