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)
-   -   Comparando valores nulos (https://www.clubdelphi.com/foros/showthread.php?t=26990)

pyanqn 09-11-2005 14:51:47

Comparando valores nulos
 
Hola. tengo una base de datos, y una table que puede contener valores de fecha nulos, ahora es necesario conocer si el valor contenido en el campo es nulo o no, la pregunta es como comparo valores nulos?

[delphi]

if (datasource.dateset['fecha'] = Null )then

[delphi/]

Esto no funciona.

Lepe 09-11-2005 15:05:39

Tienes varias formas:
Código Delphi [-]

if varIsNull(datasource.dateset['fecha'] ) then 
  showmessge('nulo');

if datasource.dateset['fecha'].IsNull then 
  showmessge('nulo');

Para el primer método, tienes que añadir el Uses Variant;

saludos

pyanqn 09-11-2005 15:31:44

funciona igual si lo que tengo es un Query, en lugar de un datasource?

jachguate 09-11-2005 15:45:18

Cita:

Empezado por pyanqn
funciona igual si lo que tengo es un Query, en lugar de un datasource?
Editar/Borrar Mensaje

la propiedad DataSet de cualquier datasource es, en efecto, un TDataSet, y TQuery es un TDataset.

pyanqn 15-11-2005 12:52:06

Tengo un problemita, ¿acaso esta funcion varisNull, booleana trabaja con logica inversa?

Para ver si un campo era nulo, era un campo de fecha, hice:

Código Delphi [-]

if not VarIsnull(algo) then
//Aqui un error

Lepe 15-11-2005 15:38:29

Y ¿ese algo que es? porque dependiendo de lo que pongas, tiene un significado u otro.

saludos

pyanqn 15-11-2005 16:08:13

lo que en realida estoy haciendo es:

Código Delphi [-]

if VarIsNull (DataSource1.dataset['FECHA'].asDate) then
      messagedlg('No se puede cambiar la fecha');

vtdeleon 15-11-2005 17:10:47

Saludos
Cita:

Empezado por pyanqn
lo que en realida estoy haciendo es:

Código Delphi [-]

if VarIsNull (DataSource1.dataset['FECHA'].asDate) then
      messagedlg('No se puede cambiar la fecha');

Y lo que quieres es....?

No se si no estoy captando :confused:

lucasarts_18 15-11-2005 18:35:51

Cita:

Empezado por pyanqn
Para ver si un campo era nulo, era un campo de fecha, hice:
Código Delphi [-]
 if not VarIsnull(algo) then
//Aqui un error

:confused:

jachguate 15-11-2005 21:09:32

Cita:

Empezado por pyanqn
lo que en realida estoy haciendo es:

Código Delphi [-]

if VarIsNull (DataSource1.dataset['FECHA'].asDate) then
      messagedlg('No se puede cambiar la fecha');

La propiedad AsDate de un TField no devuelve un variant, devuelve un TDateTime, por tanto, jamás devolverá un nulo.

Podes comprobar entonces, DataSource1.DataSet['FECHA'].IsNull o bien VarIsNull(DataSource1.DataSet['FECHA'].Value)

Hasta luego.

;)


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

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