PDA

Ver la Versión Completa : Excepciones del bde


Pablo Carlos
14-04-2005, 18:43:40
Hola... estuve revisando el historico del foro y encontré este código de marcoszorrilla (muy interesante)

Const
eInvalidDate = 10059; // cambie el número 72 que tenia por el actual
// declaro esas const despues del uses
procedure TdmTablas.error(DataSet: TDataSet; E: EDatabaseError);
var
mierror: double;
begin
mierror:= (E as EDBEngineError).Errors[0].Errorcode;

if (E is EDBEngineError) then
if (E as EDBEngineError).Errors[0].Errorcode = eInvalidDate then
begin
Application.MessageBox('Formato de fecha inválido','Atención',mb_Ok +
mb_IconQuestion);
Abort;
end;
end;
// y luego capturo el error :rolleyes:
procedure TdmTablas.tblInventarioEditError(DataSet: TDataSet;
E: EDatabaseError; var Action: TDataAction);
begin
error(tblInventario,e);
end;

procedure TdmTablas.tblInventarioPostError(DataSet: TDataSet;
E: EDatabaseError; var Action: TDataAction);
begin
error(tblInventario,e);
end;
end.

Modifico una fecha poniendo 00/00/0000 y obviamente da error, pero lo extraño que no entra al procedure PostError, directamente sale el mensaje de error de siempre, probado desde dentro y fuera de delphi.- ¿Qué será?
Saludos

Pablo Carlos
15-04-2005, 01:18:24
Y no sólo eso sino que tambien al lanzar desde delphi la aplicación cuando da el error se para en el llamado al form y no en el posterror de la tabla.-
Por ejemplo tengo form1 donde llamo al formdos con showmodal aqui es donde se posiciona delphi al ver el error, el mensaje es eConvertError .... "10/10/0000" is not a valid date (este cuando está dentro de delphi) y fuera sólo "10/10/0000" is not a valid date.-
Saludos

MasterXP
15-04-2005, 04:31:07
Por ejemplo tengo form1 donde llamo al formdos con showmodal aqui es donde se posiciona delphi al ver el error, el mensaje es eConvertError .... "10/10/0000" is not a valid date (este cuando está dentro de delphi) y fuera sólo "10/10/0000" is not a valid date.-
Saludos
Eso esta muy bien, por que si lo corres desde delphi presionando F9, se ejecuta el depurador junto con el programa, por eso te aparece el mensaje del depurador de Delphi y luego el que creaste tu.

Si quieres ejecutar el programa sin el depurador(osea como quedaria en realidad), presiona Ctrl+Shit+F9.

salu2.

Pablo Carlos
15-04-2005, 17:57:46
luego el que creaste tu.
salu2.
Hola... gracias por responder. Es que el mio nunca sale :confused:
ni siquiera entra al evento posterror
Saludos