Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Not Valid Timestamp (https://www.clubdelphi.com/foros/showthread.php?t=96484)

mRoman 14-11-2023 21:40:21

Cita:

Empezado por Casimiro Notevi (Mensaje 553297)
He hecho una prueba simulando tu entorno y ha funcionado como se espera.
He creado esta tabla:
Código SQL [-]
CREATE TABLE TBPRU01 (
    ID      INTEGER,
    NOMBRE  VARCHAR(64),
    FECHA   DATE,
    HORA    TIME
);
Y en un formulario he puesto un maskedit igual que el tuyo para probar, este es el resultado:

En un botón va esto:
Código Delphi [-]
procedure TForm2.Button2Click(Sender: TObject);
var
  iID :integer;
  cNombre :string;
begin
  iID := random(100000);
  cNombre := 'Nombre '+inttostr(iID);
  IBQuery1.Close;
  IBQuery1.SQL.Text := 'INSERT INTO tbPru01 (id, nombre, fecha, hora) VALUES (:Id, :nombre, :fecha, :hora)';
  //
  IBQuery1.Params[0].AsInteger := iID;
  IBQuery1.Params[1].AsString := cNombre;
  IBQuery1.Params[2].AsDate := date;
  IBQuery1.Params[3].AsTime := StrToTime( MaskEdit1.Text );
  IBQuery1.ExecSQL;
  //
  IBDataSet1.Refresh;
end;
Espero que te sirva.

Caray! CASIMIRO, muchas gracias.

Veo que en el codigo usas AsTime, obvio son nuestras versiones diferentes de Delphi y de FB que tenemos, yo uso Delphi6 y FB 2.0 ya que en mi delphi no tengo "AsTime", ademas de estas "variantes", esta también la de mi equipo portátil, que no sé si también este influyendo en el problema, ya que es equipo nuevo y algo -creo yo- hace falta por configurar....lo raro es que traslado el EXE compilado al servidor de producción y marca el error, por lo tanto la variante "laptop nueva", pues se descarta que sea parte del problema...

Por lo pronto asi lo tengo:

Código Delphi [-]
        dsProds.FieldByName('RESPONSABLE_DEVOLUCION').AsInteger:=cbxDevolLiq.ItemIndex;
//        dsProds.FieldByName('HORA_ENTREGA').AsDateTime := StrToTime( mskHora.Text );
        dsProds.FieldByName('HORA_ENTREGA_TXT').AsString := mskHora.Text;
        dsProds.FieldByName('FECHA_REGISTRO_VENTA').AsDateTime:=Date;
        dsProds.FieldByName('COSTO_LITRO').AsFloat:=qryContrato.fieldbyname('PRECIO_LITRO_CONCESIONARIO').As  Float;
        dsProds.Post;
        dsProds.ApplyUpdates;
Analizaré un poco mas lo que me has enviado y les cuento.

Saludos y muchas gracias.


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

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