Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   .IsNull no me funciona (https://www.clubdelphi.com/foros/showthread.php?t=75687)

bgespada 12-09-2011 19:49:13

.IsNull no me funciona
 
Hola

No soy un experto en delphi 7 y me encuentro con un problema.

Intento utilizar:

if not DBgenvlg.FieldByName(genvlgNomRobot).IsNull then

para ver si el registro es NULL de un objeto TTable y siempre me da false sea o no un valor NULL.

Consulta completa:
if not DBgenvlg.FieldByName(genvlgNomRobot).IsNull then
sNomRob := DBgenvlg.FieldByName(genvlgNomRobot).Value //Nombre
else
sNomRob := 'error'; //Nombre

¿Que estoy haciendo mal?
Llevo peleándome unas horas y buscando información, pero no tengo éxito.
Si alguien puede echarme un cable, muchas gracias.

ecfisa 12-09-2011 20:19:17

Hola y bienvenido a los foros de Club Delphi :)

Si no cometiste omisión de caracteres al escribir, el problema es la sintáxis.

Debería ser:
Código Delphi [-]
  if not DBgenvlg.FieldByName('genvlgNomRobot').IsNull then
Es decir que el nombre de campo va entre ' '.
Lo extraño es... ¿ Tenés además alguna variable llamada genvlgNomRobot ? y si el nombre del campo lo envias como valor de una variable ¿ Está correctamente asignado ?

Saludos.

bgespada 13-09-2011 07:06:54

Gracias

Las comillas no son necesarias ya que es una variable que contiene el nombre del campo en string.

Creo que el problema es que la base de datos (que me han suministrado) no permite campos null. Al menos es de lo último que he leído por la web y es una vía para seguir buscando el problema.

Gracias de nuevo

bgespada 13-09-2011 09:00:21

Hola de nuevo.

He conseguido solucionar el problema de la siguiente manera:

1º Añadiendo la unit Variants y

2º con la siguiente condición:
Código Delphi [-]
  if DBgenvlg.FieldValues[genvlgNomRobot] <> null then
    sNomRob := DBgenvlg.FieldByName(genvlgNomRobot).Value //Nombre
  else
    sNomRob := 'error'; //Nombre

Funciona!
¿Es igualmente correcto que utilizar .IsNull?

ecfisa 13-09-2011 13:12:48

Cita:

Empezado por bgespada (Mensaje 411959)
¿Es igualmente correcto que utilizar .IsNull?

Hola.

Si, por que la comprobación ( if DBgenvlg.FieldValues[genvlgNomRobot] = null ) tiene el mismo efecto que IsNull.

Saludos.


La franja horaria es GMT +2. Ahora son las 07:34:31.

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