Ver Mensaje Individual
  #1  
Antiguo 03-09-2021
maildarofer maildarofer is offline
Registrado
 
Registrado: dic 2010
Posts: 4
Reputación: 0
maildarofer Va por buen camino
Problemas con FireDac Delphi 10.4 y asignar valor Null con DateTimePicker

Hola a tod@s. Aunque llevo siguiendo el Foro desde hace tiempo, esta es mi primera intervención.
Siempre he trabajado con Delphi 7, pero ahora he dado el salto a Delphi 10.4 con FireDac y Mysql
y me he encontrado con un problemilla que ojalá me puedan resolver.
Cuando preparo una consulta para actualizar unos campos lo he hecho siempre de esta manera, es decir, primero monto la consulta utilizando parámetros
y después según el valor que tenga el TDateTimePicker pues asigno un valor Null o su fecha, de la siguiente manera:
//-----------
Código Delphi [-]
FDQuery.SQL.Add('UPDATE tabla ');
FDQuery.SQL.Add('fecha_nacimiento = :fecha_nacimiento');
FDQuery.SQL.Add('WHERE id = :id ');

if (DatetimePicker1.Format <> '') then FDQuery.ParamByName('fecha_nacimiento').IsNull
else FDQuery.ParamByName('fecha_nacimiento').AsDate := DatetimePicker1.Date;

FDQuery.ParamByName('id').AsInteger := StrToInt(LabeledEdit1.Text);

FDQuery.ExecSQL;
//------------
Con Delphi 7 este código funciona correctamente y me actualiza el campo en base de datos (tipo Date) a Null
si el DataTimePicker está vacío o me pone la fecha seleccionada en caso contrario.
Pero FireDac me da un error al asignarle Null, me dice:
Cita:
" [FireDAC] [Phys] [Mysql] -335. Parameter [FECHA_NACIMIENTO] data type is unknown. Hint: specify
TFDParam.DataType or assign TFDParam value before Prepare/Execute call. "
Sé que la forma de asignar el valor Null con este nuevo componente no es la correcta, y según el mensaje
de error debo de especificarle el tipo de dato, pero no sé como hacerlo. Espero que me puedan ayudar.
Gracias.

Última edición por Casimiro Notevi fecha: 03-09-2021 a las 10:37:06.
Responder Con Cita