PDA

Ver la Versión Completa : Detectar Excepcion EconvertError


MasterXP
26-03-2005, 08:59:48
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:

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.

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
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:

procedure TDataModule1.QueryPagosFechaSetText(Sender: TField;
const Text: string);
begin
Try
Datamodule1.QueryPagosFecha.Value:=StrToDate(Text);
Except
ON E: EconvertError DO <Lo que yo quiera>
end;
end;

salu2.