FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Control de excepciones
Hola a todos.
Aunque, creo, que lo que les voy a plantear es algo muy simple para la mayoria, para mi es complejo porque lo desconozco pero me encantaria poder manejar bien estas situaciones. Trabajo con IBX6 y Delphi 7. En el diseño de la base de datos tengo definidas algunas excepciones: entre otras. Mi pregunta es ¿como lanzo una excepcion definida en la base de datos desde el código delphi? Hasta ahora un codigo parecido al siguiente me bastaba: Pero cuando en la tabla donde se añade el nuevo registro hay varios campos con la restriccion UNIQUE, necesito saber: 1 cual es el que da el error para lanzar una u otra 2 como lanzo las excepciones definidas por mi en la base de datos. Muchas gracias por su tiempo. |
#2
|
||||
|
||||
Son dos cosas totalmente separadas.
Crea un trigger before Post en la tabla, verificas allí si el dni está comprendido entre el rango y si no lo está lanzas la excepción. La filosofía es contraria a lo que piensas. Ahora te olvidas hacer las validaciones en el boton grabar en delphi, directamente dejas pasar los datos a la base de datos, y en los triggers adecuados, el SGBBDD hará saltar la excepción que tu quieras: Trigger (hecho de memoria....):
Al saltar la excepción, verás en delphi un MessageBox con el texto de la excepción. PD: el usuario, a veces no sabe el dni para dar de alta el registro, deberías dejarle introducir un cero para esos casos especiales. Si no.... ya te lo pedirán . Para estos 2 casos, yo no crearía una excepción, sino un "check constraint". Revisa la documentación de Firebird/IB. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 08-03-2008 a las 10:53:27. |
#3
|
|||
|
|||
Muy amable por tu respuesta y respecto a lo del check constraint tienes razon. Lo estudiare.
Gracias Lepe. |
#4
|
|||
|
|||
Pero ¿como escribo el trigger si la excepcion se produce por la contravencion de un valor UNIQUE?
|
#5
|
||||
|
||||
Se supone que al definir un campo como unico el manejador de base de datos se encarga de lanzar esa excepcion
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#6
|
|||
|
|||
Ya. El sistema maneja todas las excepciones pero yo lo que quiero es lanzar mi propia excepcion para que el usuario la vea tal como yo quiero que la vea y lanzarle el mensaje que yo planifique. Da mas sensacion de control.
|
#7
|
||||
|
||||
Cita:
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Excepciones | banleu | Firebird e Interbase | 8 | 20-04-2006 00:11:18 |
Excepciones | adpa | OOP | 5 | 14-12-2005 15:45:45 |
Excepciones | Acker | Tablas planas | 6 | 06-08-2005 15:22:18 |
excepciones!!!!! | hanna33 | OOP | 3 | 24-05-2005 17:10:10 |
Excepciones del bde | Pablo Carlos | Conexión con bases de datos | 3 | 15-04-2005 17:57:46 |
|