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 

Excepciones en ADO

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

Hola amigos

Tengo el siguiente código:
Código:

void AplicaConsultaADO(TADOConnection *Conexion, TADOQuery *Query, int Tipo, AnsiString ConsultaSQL)
{

   if (!Conexion->InTransaction)
     Conexion->BeginTrans();
     Query->Connection = Conexion;
   if (Query->Active)
      Query->Close();
   if ((ConsultaSQL!=NULL) && (ConsultaSQL!=""))
      Query->SQL->Text = ConsultaSQL;

   // Tipo 0 : Consulta
   // Tipo 1 : Modificacion, insercion

   try
   {
      switch (Tipo)
      {
         case 0: Query->Open();break;
         case 1: Query->ExecSQL();break;
      }
      Conexion->CommitTrans();
   }
   catch (EADOError &error)
   {
        ShowMessage("El error ha sido "+error.Message);
   }
}



Para el que le interese este código sirve para aplicar una consulta SQL utilizando ADO.

Nos gestiona las transacciones y todo, de forma que nosotros no tenemos que preocuparnos nada mas de la consulta SQL que queremos.

Puede que alguien lo tenga hecho mas eficientemente, si es así le ruego que me lo envíe.

Bueno, a lo que voy.

La parte que no está bien es la del manejo de excepciones.
Este código se le he incluido hoy, pero no me funciona bien.

Necesito manejar las exceciones de la consulta, de forma que al hacer `
Código:

      switch (Tipo)
      {
         case 0: Query->Open();break;
         case 1: Query->ExecSQL();break;
      }

si se produce una excepción, pueda capturarla correctamente y poner el comentario indóneo a cada excepción.

Por ejemplo tengo una restricción de tipo UNIQUE en mi base de datos.
Si intento crear un registro repetido, me sale el mensaje de error de la excepción, pero el que saca Builder.

Yo quiero sacar el mío propio.

¿Cómo puedo hacerlo?

Saludos
_________________
La pintura es la expresión de la mente.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Que tal LIGERO... me temo que para esto es meterse un poco más en las entrañas de tu motor de base de datos.

En estas ligas existe la forma de cambiar los mensajes que envia un el servidor por uno más propio. La desventaja es que es para Interbase. Pero te puede dar una idea de como empezar a investigar sobre tu motor.

http://bdn1.borland.com/article/0,1410,28498,00.html
http://bdn1.borland.com/article/0,1410,28499,00.html

Saludos y suerte!
_________________
Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
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.