![]() |
Ayuda con valores no null en FIREBIRD 2.1
Hola a todos, tengo una base de datos de unos estudiantes con los siguientes campos:
CODIGO CHAR(6) y NOMBRE VARCHAR(30) Cuando hago una consulta con el codigo por ejemplo '001423' da el resultado deseado, pero si ingreso un codigo que no esta en la base de datos no da null, asi que esto me presenta problemas pues utilice un select asi: SELECT COALESCE(NOMBRE,'NO REGISTRADO') FROM ESTUDIANTESWHERE CODIGO = :C y necesito que me de indique la base de datos que el registro no existe, que debo hacer... Gracias |
Hola Jose Roman, no te sirve preguntar por IsEmpty de tu dataSet, IsEmpty te devuelve True si no ha encontrado ningún resultado. Con la consulta que pones si no encuentra un registro con el codigo "c", no va devolver resultados, el Coalesce te va funcionar si ese codigo existe y el nombre sea Null.
Saluditos |
Pero es que en teoria debe funcionarte eso que estas haciendo sin problema, acabo de hacer una prueba similar a la que comentas y me ha funcionado bien... Si estas haciendo esto en un procedure sería inetresante ver todo el procedure por si encontramos algo fuera de lo común.
|
Pero en que version de FIREBIRD realizaste la prueba?
|
Ahhhh, ya comprendo, es que claro, como la consulta no te arroja ningun dato, entonces coalesce no tiene registros para comparar si este campo es NULL o no, por lo que no tendra NULL un campo al no tener ningún registro.
Si es un procedimiento almacenado en el que estas ejecutando dicho coalesce, podrias aplicarlo a la variable donde cae ese valor, mas no en la consulta en si. (Lo dicho, muestra todo el procedimiento para ver que podemos hacer). Cita:
|
Pues te cuento que no lo estoy realizaon a nivel de procedimiento solo a nivel de consulta...., sabes de casualidad alguna manera para que me de ese mensaje, sin tener que utilizar el Dataset
|
Cita:
El cual podras llamar, asi por ejemplo:
|
¿Porque sera que a uno siempre se le prende el "bombillito" cuando ya ha metido la pata? :D:D:D
En la sola consulta y sin necesidad de ningún procedimiento almacenado, puedes hacerlo tambien, haciendo uso de la función LIST, de la siguiente forma:
Esto, te devolvera "NO REGISTRADO" en caso de que no coincida el codigo con ningún registro y el NOMBRE del estudiante en caso de que si coincida. |
Muchas gracias, definitivamente me falta mucho por explorar en Firebird 2.1.
|
Cita:
|
ALGO MAS SIMPLE..
|
Cita:
|
La franja horaria es GMT +2. Ahora son las 13:09:32. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi