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)
-   -   Detectar Excepcion EconvertError (https://www.clubdelphi.com/foros/showthread.php?t=19779)

MasterXP 26-03-2005 08:59:48

Detectar Excepcion EconvertError
 
Buenas a todos, el problema es el siguiente:

Tengo:
Datasource->TQuery->DBgrid
->TupdateSQL
Osea el Tquery tiene un TupdateSQL asociado.

mi base de datos esta en MySQL y uso el ODBC para conectarme a ella.

el problema es el siguiente, cuando intento modificar un campo tipo Date en el DBgrid lo hace bien, siempre y cuando escriba la fecha en formato YYY-MM-DD, pero quiero evitar el mensaje de error que da Delphi si no se escribe la fecha en este formato, en error que me da es el siguiente:

Cita:

Raized exception class EconvertError with Message "2000" is not a valid Date
Ahora quiero utilizar el Try..Except para evitar ese mensaje y dar un mensaje personalizado a mi manera, pero no se en que evento ponerlo ni en cual componente.

un saludo, y gracias de antemano.

Lepe 26-03-2005 11:34:05

Deja que el usuario modifique en el formato que quiera, pero al tiempo de pasarle las fechas al sql, formateas la fecha a YYYY/mm/dd con Formatdatetime.

O bien usa parámetros en las sql para que delphi convierta las fechas.

Supongo, que el try / except debe englobar al query.Open y/o cuando se ejecuta el UpdateSql; no puedo ser más explicito porque no he usado esos componentes.


Un saludo

MasterXP 27-03-2005 08:11:33

Lepe, lo de formatearla esta muy bien, ya lo habia hecho (gracias), el problema es que imaginate que el fromato sea DD/MM/YYY, y que en la parte del dia ponga el numero 45, no existe tal dia, entonces hay salta la excepcion esa.

Cita:

Supongo, que el try / except debe englobar al query.Open y/o cuando se ejecuta el UpdateSql; no puedo ser más explicito porque no he usado esos componentes.
El problema es que el UpdateSQL no tiene eventos, entonces no se en que parte es que debe estar.

Alguien sabe algo?

que piensas al respecto Lepe?

Lepe 27-03-2005 14:41:11

Cita:

Empezado por MasterXP
El problema es que el UpdateSQL no tiene eventos, entonces no se en que parte es que debe estar.

que piensas al respecto Lepe?

Que me está muy bien empleado, por meterme donde no me llaman :D

Suerte!

MasterXP 27-03-2005 16:02:11

no hay problema amigo, gracias por responder, seguire intentando aqui haber si logro algo.

Gracias Lepe. :D

Delfino 29-03-2005 20:09:38

Yo lo hago en el evento OnSetText del field y me va muy bien..

MasterXP 30-03-2005 06:42:55

Gracias Delfino, perfectamente.
lo hice de la siguiente manera:

Código Delphi [-]
procedure TDataModule1.QueryPagosFechaSetText(Sender: TField;
   const Text: string);
 begin
 Try
 Datamodule1.QueryPagosFecha.Value:=StrToDate(Text);
 Except
 ON E: EconvertError DO 
 end;
 end;

salu2.


La franja horaria es GMT +2. Ahora son las 07:25:51.

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