Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Mensajes de Interbase

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Mensajes de Interbase Responder citando

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
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

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
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.