Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   campo fecha y hora en IBSQL (https://www.clubdelphi.com/foros/showthread.php?t=12972)

StartKill 02-08-2004 17:52:28

campo fecha y hora en IBSQL
 
Saldos foro,

Trabajo con delphi 7.0, con interbase 7.1 y con componentes IBX.

Tengo una actualizacion de una tabla con al siguiente estructura:

Código:

CREATE TABLE CD_ABONOS (
    FCOD_CONTR      CHAR(11) NOT NULL,
    FCOD_PRE        CHAR(10) NOT NULL,
    FFECHA  DATE,
    FHORA  TIME
);

Para insertar un registro estoy utilizando el componente IBSQL asi:

Código:

...
xFecha:=datetostr(date());
xHora:=timetostr(time());
ibsql1.close;
ibsql1.clear;
ibsql1.sql.add('insert into CD_ABONO '+
                '(FCOD_CONTR, FCOD_PRE, FFECHA, FTIME)'+
                ' values ('+
                chr(39)+xcod_contr+chr(39)+',  '+
                chr(39)+xcod_pre+chr(39)+',  '
                chr(39)+xfecha+chr(39)+',  '
                chr(39)+xtime+chr(39)+')'
IBSql1.ExecQuery;

y me salta un error... :confused:
Código:

conversion error from string "10:227:27 a.m."
He cambiado el formato de hora en el panel de control de windows.. y he tenido exito :) , pero sucede que hay otro sistema paralelo al mio :mad: que no trabaja con la nueva configuracion de formato hora del panel de control del windows :( ... y en estos momentos estoy pensando??? y la fecha la estará guardando bien?.

Bueno amigos espero consejos, opiniones, regalos...

Your friend

StartKill
Lima-Perú

Nuria 04-08-2004 09:31:11

Hola StartKill!

Has probado de esta manera:

Código Delphi [-]
ibsql1.close;
ibsql1.clear;
ibsql1.sql.add('insert into CD_ABONO '+
                 '(FCOD_CONTR, FCOD_PRE, FFECHA, FTIME)'+
                 ' values (:COD,:PRE,:FEC,:TIM)';
ibsql1.ParambyName('COD').AsString := x_cod_contr;
ibsql1.ParambyName('PRE').AsString := xcod_pre;
ibsql1.ParambyName('FEC').AsDate := date();
ibsql1.ParambyName('TIM').AsTime := time();
IBSql1.ExecQuery;

En vez de convertir un Time a String. Directamente por medio de los parámetros, le pasas un tipo time. Igual de esta manera no te salta el error y te convierte bien el tipo time. Es sólo una suposición, no lo he probado.

Espero que te sirva.

Un saludo! :)

StartKill 04-08-2004 17:12:12

Gracias
 
Holas Nuria,

Recibe saludos de tu hermano pais Perú, departamento de Lima :cool: ,

Te comento que probé tu código con excelentes resultados, cambie varios formatos en el panel de control tanto fecha y hora... y perfecto. :)
Cita:

Por Nuria:
En vez de convertir un Time a String. Directamente por medio de los parámetros, le pasas un tipo time.
Es lógico, tenes razon..., muchas gracias.

Your friend :cool:

StartKill
Lima-Perú

mongiel 31-07-2013 02:34:04

Como creaste los parametros ya que no lo he podido crear, de antemano gracias por tu apoyo.

Casimiro Notevi 31-07-2013 09:07:11

Cita:

Empezado por mongiel (Mensaje 464726)
.

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)


La franja horaria es GMT +2. Ahora son las 11:57:26.

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