 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Invitado
|
Publicado: Mie 09 Feb, 2005 10:57 am Asunto: Mensajes de Interbase |
|
|
Hola a todos.
Cómo puedo visualizar en mi aplicación el texto de una excepción creada en una base de datos Interbase?
Si hay que utilizar algun componente de la paleta InterBase, ¿Cual es y como se utiliza?
Gracias y un saludo. |
|
| Volver arriba |
|
 |
XyVy Master


Registrado: 25 Ago 2002Mensajes: 557Ubicación: Murcia (España)
|
Publicado: Jue 10 Feb, 2005 10:19 am Asunto: |
|
|
Yo tengo creadas varias excepciones en alguna Base de datos, lo que hago es lanzarlas desde Firebird, es decir, para que ibas a querer lanzarlas desde Builder, sería tontería, pues para eso, lo que harías sería simplemente hacer comprobación antes de ejecutar la consulta contra el servidor, si la consulta produce un fallo o quiere que se emita una excepción, te sugiero que uses un procedimiento almacenado, así desde el procedimiento almacenado lanzas la excepción, la cual es atrapada por Builder y mostrada por pantalla.
Ejemplos de algunas excepciones de una Base de datos Firebird que tengo en un proyecto:
| Código: |
CREATE EXCEPTION OFERTA_NO_DISPONIBLE 'Esta oferta no se encuentra disponible. Ya ha vencido la fecha limite.';
CREATE EXCEPTION CANTIDAD_NO_DISPONIBLE 'No se encuentran tantos CANTIDAD de articulos disponible';
|
Luego las lanzo desde un procedimiento almacenado, tras comprobar que se cumplen ciertas condiciones necesarias en mis tablas o en los parametros:
| Código: |
....
ELSE IF (:cantidad=:db_cantidad) THEN
BEGIN
DELETE FROM segunda
WHERE catalogo_referencia=:referencia AND precio=:tarifa AND precio_compra=:precio_compra;
END
ELSE
EXCEPTION CANTIDAD_NO_DISPONIBLE;
.....
|
En este trozo de codigo de un procedimiento almacenado, cuando se intenta vender un articulo si resulta que se intenta vender más cantidad de la disponible, la Base de datos tira una excepción informando de "cantidad no disponible" la cual es atrapada y mostrada por Builder, esto me permite simplificar el código en Builder y no hacer muy dependiente el código de Builder con las tablas de la BD y el funcionamiento del programa. Así puedo cambiar más libremente el procedimiento almacenado añadiendo nuevas reglas o politicas sin preocuparme tanto del código en Builder.
En fín, espero que te sirva para aclararte un poco.
Cuidate. _________________ OJO!! Ya tenemos subforo de Bases de Datos!!
Gracias a los admins. |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Jue 10 Feb, 2005 11:06 am Asunto: |
|
|
Gracias por contestar.
Si, eso ya lo tengo tal como dices, lo que pasa es que me lanzaba las excepciones de Interbase y nunca las de creadas en la base de datos, no entiendo porqué.
Saludos. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|