Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-05-2005
hanna33 hanna33 is offline
Miembro
 
Registrado: mar 2005
Posts: 11
Poder: 0
hanna33 Va por buen camino
Talking excepciones!!!!!

hola tengo un problema con excepciones... lo que pasa es ke quiero atrapar 2 excepciones una es para cuando el usuario quiere insertar un registro con la misma clave.... y otra cuando borro me marca un error pero si hace los cambio en mi bd...

la excepcion de insertar clave duplicada ya sale pero ahora cada vez que kiero modificar o bien borrar mis registros me marca el error de la clave duplicada...

ke es lo que pasa???

bueno el error que me marca cuando borro un registro es "row cannot be located for updating. Some values may have been changed since it was last read" al buscar este error encontre que es el de AspGridInsertError y trato de atraparlo pero siempre entra al de la clave duplicada...si fuera el mismo error como puedo saber cual error ocurrio para mandar el mensaje????

abajo agrego mi codigo por si alguien puede ayudarme...

procedure TForm1.error(Sender: TObject; E: Exception);
begin
if E.ClassNameIs('EConvertError') then
MessageDlg('No que no!!!',mtWarning,[mbYes],0)
else
if E.ClassNameIs('EDataBaseError') then
MessageDlg('Clave duplicada ',mtWarning,[mbYes],0)
else
if E.ClassNameIs('AspGridInsertError')then
MessageDlg('intentando borrar',mtWarning,[mbYes],0);
ADOTable1.Cancel;
end;



gracias y espero ke alguien pueda ayudarme
Responder Con Cita
  #2  
Antiguo 23-05-2005
Avatar de DarKraZY
DarKraZY DarKraZY is offline
Miembro
 
Registrado: ago 2003
Posts: 460
Poder: 21
DarKraZY Va por buen camino
Supongo que habrás agregado tu función Error al Application.OnException, ¿no?

El problema que creo que tienes es que "EDataBaseError" es una clase de exception que detecta cualquier error relacionado con la base de datos. Deberías ser más específico a la hora de capturar las excepciones.
Responder Con Cita
  #3  
Antiguo 24-05-2005
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Hola, has visto el mensaje de la excepción?
Como dice DarKraZY, "EDataBaseError" es una clase de exception que detecta cualquier error relacionado con la base de datos.

Deberías visualizar el mensaje de la excepción:
Código Delphi [-]
procedure TForm1.error(Sender: TObject; E: Exception);
begin
  if E.ClassNameIs('EConvertError') 
  then MessageDlg('No que no!!! '+E.Message,mtWarning,[mbYes],0)
  else
    if E.ClassNameIs('EDataBaseError') 
    then MessageDlg('Clave duplicada: '+E.Message,mtWarning,[mbYes],0)
    else
      if E.ClassNameIs('AspGridInsertError')
      then MessageDlg('intentando borrar '+E.Message,mtWarning,[mbYes],0);
  ADOTable1.Cancel;
end;
Salu2.
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #4  
Antiguo 24-05-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Aquí aún no se ha comentado de qué tipo son las tablas ni el método de acceso, ni el delphi que se está usando, pero quizás te sirva de algo este hilo donde se engaña a delphi para que no salte una excepción de tipo EDatabaseError, sino una llamada EDBEngineError que si podemos controlar.

Espero te sirva de utilidad.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 20:07:03.


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
Copyright 1996-2007 Club Delphi