![]() |
Comprobar si un valor es nulo
Me estoy volviedo loco. Estoy ejecutando este query en Builder 6 contra una base de datos Firebird:
que me devuelve este resultado: Cita:
Código:
for (; !fPersona->Query->Eof; fPersona->Query->Next())Cita:
![]() |
Puedes usar coalesce.
|
Código PHP:
|
Hola.
Cita:
Si deseas que cuando sea NULL figure DESCONOCIDA, podes hacer lo que te indicó Casimiro(es mejor) o tambíen: Código PHP:
Saludos :) |
Cita:
Cita:
Cita:
Cita:
Muchas gracias a todos |
Como lo resolviste? IsNull funciona, ahora el caso es como se usa dentro de los condicionales claro
|
Cita:
Código:
bool lPrueba = false;Lo de IsNull si que me ha extrañado que no funcionara porque de hecho le he usado con relativa frecuencia, tanto en BB.DD. Firebird como Paradox. |
No uso C++ (que afortunado!) pero ya que no te han explicado porque pasa esto, aqui va algo pa que no olvides, y que muchos lenguajes es lo mismo:
Cita:
https://stackoverflow.com/questions/...uit-evaluation Por regla general, los AND y los OR utilizan "short circuit" y siguen la regla de las tablas de verdad. En este caso, si la 1era opcion en AND es verdadera, NO CHEQUEA LA SEGUNDA. Y lo mismo aplica en el OR True And False = True False OR True = True El segundo problema es que UpperCase si te esta volviendo NULL? O cadena vacia?. |
En un AND donde encuentra el primer falso ya no chequea más
En un OR, con un sólo verdadero ya alcanza para que sea verdadero Basicamente (True) AND (True) AND (True) AND (True) AND (False) = False (False) AND (True) AND (True) AND (True) AND (True) = False, solo se evalua el primer condicional (True) OR (True) OR (True) OR (True) OR (False) = True, solo se evalua el primer condicional Tiene cierto "truco", ya que a pesar de que aca estamos hablando de constantes True/False, muchas veces tenemos funciones que devuelven True o False. Y si bien es un error grave que tengan efectos colaterales, es para tener en cuenta, no se debe asumir que siempre se evaluan todas las condiciones; tambien es para tener en cuenta el orden en que encadenamos condiciones, lo propio es poner lo mas rapido primero y dejar lo pesado para el final Se puede configurar el compilador para que haga Full Boolean Evaluation |
No se si alguien lo ha comentado ya, pero ¿no puedes añadir la condición a la SQL, en lugar de tratarlo a posteriori?
|
Cita:
![]() |
Hola.
La situación no me termina de quedar clara... Cuando el valor de la columna LITERAL es NULL, ¿ Deseas que el ítem del CheckListBox incluya algún texto como sugiere la imágen de tu primer mensaje ? Si no te interpreté mal y es así, creo que lo mas simple es hacerlo con la sugerencia de Casimiro, ejemplo : Código PHP:
![]() Saludos :) |
Cita:
Código:
Query->Close(); |
| La franja horaria es GMT +2. Ahora son las 23:22:46. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi