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)
-   -   poner un campo existente en nulo (https://www.clubdelphi.com/foros/showthread.php?t=80964)

jooooseph 27-09-2012 20:43:12

poner un campo existente en nulo
 
Bueno... ahora tengo este problemilla.... Tengo un registro ingresado con la fecha de su boda, lo que necesito es que cuando haga alguna modificacion y necesite que la fecha de boda este vacia o null se guarde como tal.

tengo mi UPDATE y en el SET aparte de otros campos a modificar tendo FECHA_BODA = :FECHA_B
Código Delphi [-]
fecha2:=null // intente de esta forma 
// SQLQUERY1.ParamByName('FECHA_B').clear;    tambien de esta forma
SQLQUERY1.ParamByName('FECHA_B').AsDate:=FECHA2;

Espero puedan darme una manito. Gracias de antemano^\||/

maeyanes 27-09-2012 20:52:53

Hola...

Intenta poniendo su valor en 0 (cero).


Saludos...

roman 27-09-2012 20:57:08

Usa el método Clear del campo, que para eso está. Claro que en tu base debes haber especificado que ese campo acepta valores NULL.

// Saludos

jooooseph 27-09-2012 21:05:04

Cita:

Empezado por maeyanes (Mensaje 445638)
Hola...

Intenta poniendo su valor en 0 (cero).


Saludos...


Cuando lo pongo a cero la fecha cambia a 30/12/1899 que para el caso de mi proyecto no serviría, debido que necesito que la fecha esté vacía. gracias por la ayuda.^\||/

jooooseph 27-09-2012 21:35:16

1 Archivos Adjunto(s)
Cita:

Empezado por roman (Mensaje 445639)
Usa el método Clear del campo, que para eso está. Claro que en tu base debes haber especificado que ese campo acepta valores NULL.

// Saludos

puese en clear la propiedad, pero nada...me da este error

Para todo esto la tabla la tengo asi creada.

Código SQL [-]
CREATE TABLE MIEMBROS (
  CODIGO_MIEMBRO SMALLINT NOT NULL,
  NOMBRE_COMPLETO VARCHAR(50) NOT NULL,
  NOMBRE VARCHAR(30) NOT NULL,
  APELLIDOS VARCHAR(30),
  FECHA_NACIMIENTO DATE,
  SEXO VARCHAR(9),
  ESTADO_CIVIL VARCHAR(13) NOT NULL,
  FECHA_BODA DATE,
  CORREO VARCHAR(50),

gracias por la ayuda

ecfisa 27-09-2012 21:59:39

Hola jooooseph.

¿ Probaste aplicando el método Clear sobre el campo como te sugirió roman ?

Ejemplo:
Código Delphi [-]
   SQLQuery1.FieldByName('FECHA_NACIMIENTO').Clear;
Por que en tu código lo estabas aplicando sobre el parámetro...

Saludos.

jooooseph 27-09-2012 23:22:56

Cita:

Empezado por ecfisa (Mensaje 445648)
Hola jooooseph.

¿ Probaste aplicando el método Clear sobre el campo como te sugirió roman ?

Ejemplo:
Código Delphi [-] SQLQuery1.FieldByName('FECHA_NACIMIENTO').Clear;

Por que en tu código lo estabas aplicando sobre el parámetro...

Saludos.

Tambien lo hice asi... pero nada-

Bueno chicos.... Gracias por su tiempo pero lo solucioné con algo mas sencillo.
en el mismo codigo del SQLquery.text modifique el paramtro de :Fecha_B por null y ya no hubo la necesidad de crear ni llamar al parametro o aplicar el clear (no funciona)

Código SQL [-]
Update Tabla set ******** fecha_boda = null, ******* where codigo=:cod

ElMug 28-09-2012 04:58:47

Cita:

Empezado por jooooseph (Mensaje 445664)
Tambien lo hice asi... pero nada-

Bueno chicos.... Gracias por su tiempo pero lo solucioné con algo mas sencillo.
en el mismo codigo del SQLquery.text modifique el paramtro de :Fecha_B por null y ya no hubo la necesidad de crear ni llamar al parametro o aplicar el clear (no funciona)

Código SQL [-]Update Tabla set ******** fecha_boda = null, ******* where codigo=:cod

fecha_boda = null es lo correcto.

"Nulo" es ausencia de data. El valor cero no es eso.

Ahora que Clear se usa para DESTRUIR objetos, y posiblemente se pueda usar para eliminar una columna,
mas no la data contenida en un campo.

ecfisa 28-09-2012 05:27:44

Cita:

Ahora que Clear se usa para DESTRUIR objetos, y posiblemente se pueda usar para eliminar una columna,
mas no la data contenida en un campo.
Hola ElMug.

En realidad el método Clear sí pone el valor de un TField en NULL.

(Extraido de la ayuda de Delphi):
Cita:

Clear method (TField)
Sets the value of the field to NULL.

Delphi syntax:

procedure Clear;

C++ syntax:

virtual void __fastcall Clear(void);

Description

Call the Clear method to give the field a blank value (a NULL value in SQL terms).
Saludos.

ElMug 28-09-2012 05:50:53

Gracias por la aclaracion. Ya vi que si debe de hacerlo.

Estaba leyendo "Clear" fomo "Free". Free es el que se aplica a objetos (es Destroy condicionado a que el objeto exista).


La franja horaria es GMT +2. Ahora son las 15:18:58.

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