PDA

Ver la Versión Completa : Control de error


silviodp
12-08-2005, 17:10:19
Como puedo controlar el siguiente error:
"raised exception class EDBEngineError with message 'key violation' " ??
Si esta pregunta ya fue hecha y respondida me podrian poner el link de donde está?, gracias.-

delphi.com.ar
12-08-2005, 17:33:04
Si quieres evitar que se produzca el error, puedes previamente validar tus datos para comprobar que no violen ninguna constraint. Simplemente haciendo consultas, tipo:

SELECT 1
FROM TABLA
WHERE ID = :NEWID

Si esta consulta retorna al menos un registro, significa que ya hay un registro con ese ID.

Saludos!

silviodp
12-08-2005, 17:40:04
Si esa forma está barbara, pero a mi me gustaría hacerlo con Excepciones..., me explico??

dec
12-08-2005, 18:08:32
Hola,


Si esa forma está barbara, pero a mi me gustaría hacerlo con Excepciones..., me explico??

¿Te refieres a informar al usuario con una excepción? ¿Pues porqué no usas lo que te dice Federico y, en caso necesario, haces algo como esto?


raise Exception.Create('Alto, te equivocaste, amigo...');

Lepe
12-08-2005, 18:26:40
Busca en el foro por "ekeyviol" y darás directo con el tema que buscas
(quizás tengas que buscar en los antiguos foros).

Un saludo

ContraVeneno
12-08-2005, 19:56:48
Try
//aqui haces lo que tenga que hacer
Except on E:Exception do //podría ser E:EdbEngineError tu decides
if (E is EDBEngineError) then
with EDBEngineError(E).Errors[0] do
if ErrorCode = 9729 then begin
//aqui tu forma de tratar el problema, ya se aun mensaje,
//una acción, un beep, lo que tu creas conveniente.
end else
//si fue algun otro # de error que no esperabas, mostrar la excepción.
raise;
else
//en caso que no sea un EDBEngineError, mostar el error.
raise;
end; //try


Busca en internet "BDE ERROR CODES", si quieres conocer los demás errores.

silviodp
12-08-2005, 20:14:31
Muchas gracias, lo voy a probar.
Gracias a todos.-