Inicio › Foros › Lenguajes de programación, desarrollo, código fuente › Delphi › Asignar valor null a un campo de una tabla MySQL MariaDB en Delphi 7 [RESUELTO]
Etiquetado: borland, borland delphi, delphi, delphi 6, delphi 7, exec sql, insert, insertar null, insertar nulo, mariadb, mysql, null, nulo, parameter, parámetro, pascal, resuelto, solución, solucionado, solved, sql, valor, value
- Este debate tiene 2 respuestas, 2 mensajes y ha sido actualizado por última vez el hace 1 año, 1 mes por Varios.
-
AutorEntradas
-
12/04/2023 a las 08:58 #50031VariosModerador
Hola, uso Borland Delphi 7 para una aplicación «antigua» como IDE de desarrollo. Como motor de base de datos uso MariaDB y MySQL. Quiero insertar un registro en una tabla, y añadir el valor null a un campo ¿cómo puedo hacerlo? Uso este código Delphi para la inserción:
Delphi/Pascal123456789101112131415161718192021moduloDatos.tSQL.SQL.Close;moduloDatos.tSQL.SQL.Clear;moduloDatos.tSQL.SQL.Add('insert into facturas');moduloDatos.tSQL.SQL.Add('(numero, importe, fecha, albaran) values');moduloDatos.tSQL.SQL.Add('(:pNumero, :pImporte, :pFecha, :pAlbaran)');moduloDatos.tSQL.ParamByName('pNumero').DataType := ftInteger;moduloDatos.tSQL.ParamByName('pNumero').AsInteger := numero;moduloDatos.tSQL.ParamByName('pImporte').DataType := ftFloat;moduloDatos.tSQL.ParamByName('pImporte').AsFloat := importe;moduloDatos.tSQL.ParamByName('pFecha').DataType := ftDateTime;moduloDatos.tSQL.ParamByName('pFecha').AsDateTime := now;moduloDatos.tSQL.ParamByName('pAlbaran').DataType := ftString;moduloDatos.tSQL.ParamByName('pAlbaran').AsString := albaran;trymoduloDatos.tSQL.ExecSQL;moduloDatos.tSQL.Close;result := true;exceptraise;result := false;end;Y lo que quiero es que según un condicional (if), pueda poner en el campo «fecha» un valor null o bien la fecha actual.
12/04/2023 a las 09:02 #50032alonsojpdSuperadministradorPara asignar un valor null a un campo de una base de datos, usando parámetros (como lo has hecho tú), sería usar la propiedad «Value», quedando:
Delphi/Pascal12moduloDatos.tSQL.ParamByName('pFecha').DataType := ftDateTime;moduloDatos.tSQL.ParamByName('pFecha').Value := null;Si necesitas usar un condicional para establecer el valor null al campo fecha o bien el valor de la fecha actual, sería:
Delphi/Pascal12345moduloDatos.tSQL.ParamByName('pFecha').DataType := ftDateTime;if __condicion__ thenmoduloDatos.tSQL.ParamByName('pFecha').Value := null;elsemoduloDatos.tSQL.ParamByName('pFecha').AsDateTime := now;De esta forma, si se cumple la condición se asignará el valor null al campo «fecha» y si no se cumple, se asignará la fecha actual del equipo.
12/04/2023 a las 09:05 #50034VariosModeradorGenial, muchas gracias, con el .Value := null me funciona perfecto.
Solucionado! -
AutorEntradas
- Debes estar registrado para responder a este debate.