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??
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...');
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.-
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.