Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-04-2004
Avatar de dchaparro
dchaparro dchaparro is offline
Registrado
 
Registrado: abr 2004
Ubicación: La Plata, Argentina
Posts: 9
Poder: 0
dchaparro Va por buen camino
Bueno, me sorprende la rapidez de las respuestas, creo que esta contestada la pregunta asi que voy a probar las soluciones enunciadas. Me inclinaría por el try-except (expuesto por Roman) para manejar errores, que nunca lo tuve en cuenta y debe ser muy util en muchas ocaciones.
Muchas gracias.
Responder Con Cita
  #2  
Antiguo 15-04-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Entonces te recomiendo una lectura del apartado de excepciones en la ayuda de Delphi para que tengas una idea más clara de cómo funcionan. Para el caso particular de excepciones del bde te recomiendo este mensaje del compañero marcoszorrilla en donde da un ejemplo muy claro del uso del evento OnPostError y que puedes aplicar a la técnica del try-except:

Código:
try
  Table1.Post;
except
  on E: EDBEngineError do
    case E.Errors[0].ErrorCode of
      eKeyViol: { maneja excepción 'Key Violation' }
      eRequiredFieldMisssing: { Maneja excepción 'Required Field Missing }
      ...
      etc
    end;
end;
Según las circunstancias puede ser más recomendable utilizar el evento OnPostError ya que de esa manera centralizas el manejo de este tipo de excepciones de tal suerte que la excepción se manejará independientemente del lugar desde donde se hace el 'post'. El uso de try-except te obliga a colocar el manejo de la excepción en todos las partes de la aplicación en donde se haga un 'post' a la tabla en cuestión.

// Saludos
Responder Con Cita
  #3  
Antiguo 20-04-2004
Avatar de dchaparro
dchaparro dchaparro is offline
Registrado
 
Registrado: abr 2004
Ubicación: La Plata, Argentina
Posts: 9
Poder: 0
dchaparro Va por buen camino
Manejo del error Table.Post

Voy a insistir con un punto mas en este tema. Hice try-except para manejar el error cuando hago Table.Post, donde le aviso ShowMessage('El codigo ya existe'); o algo asi y funciona de maravillas, pero cuando ejecuto dentro de Delphi, la ejecucion se interrumpe y me da el error ('Key violation' en este caso) y me dice 'Run o Step to continue' etc.. Me gustaria saber si esto es normal, o sea a pesar de que yo manejo el error, Delphi interrumpe la ejecucion igual.
Cabe aclarar que si ejecuto el programa fuera de Delphi, no hay ningun, problema no se interrumpe la ejecucion y queda mi reluciente mensaje en la pantalla
Desde ya muchas gracias.
Responder Con Cita
  #4  
Antiguo 20-04-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por dchaparro
Me gustaria saber si esto es normal, o sea a pesar de que yo manejo el error, Delphi interrumpe la ejecucion igual.
Es perfectamente normal. Por defecto, al trazar una aplicación Delphi lanzará él mismo la excepción antes de que tu código la detecte a fin de que el trazado sea más fácil (pues al detenerse el editor se coloca automáticamente en la línea que genera la excepción).

Puedes deshabilitar este comportamiento en el menú Tools|Debugger Options|LanguageExceptions, deshabilitando la casilla "Stop on Delphi Exceptions"

// Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 15:19:11.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi