Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Por que no funciona EOLEException (https://www.clubdelphi.com/foros/showthread.php?t=40688)

vicac 23-02-2007 20:40:14

Por que no funciona EOLEException
 
Hola. Soy novata en el manejo Delphi, estoy desarollando un a aplicacion (Delphi7) con una base de datos en MySql que debe ser accedida por varios clientes. Dentro de la aplicacion genero un Vale con numero de folio unico y lo manejo de la siguiente manera:

Cuando abre la forma muestra un numero de folio obtenido de "select max(folio) from vale". Obviamente si se conectan dos clientes al mismo tiempo les dara el mismo numero de folio. Es por esto que al guarda se generara una exception la cual quiero tomar e indicarle que recalcule el numero de folio.

Mi problema es que ese trozo de codigo, donde toma la excepcion, no me funciona, estoy utilizando myodbc el error es de llave duplicada de la class EOLEException.


Try
tablas.ADOQuery1.SQL.Clear;
tablas.ADOQuery1.SQL.Text:=cad;
tablas.ADOQuery1.ExecSQL;
application.MessageBox('Registro Agregado','Información',mb_ok+mb_iconinformation);

except
on E:EOLEException do begin
// Levantamos la excepción
MessageDlg('Se asignara un nuevo folio:' +E.Message, mtError, [mbOK], 0);
self.CalcularFolio;
end;

cad es la intruccion de insertar en mysql, y el error se produce en la linea de "tablas.ADOQuery1.ExecSQL;". y no tome el codigo de la exception.


¿Que estoy haciendo mal?

Gracias por su ayuda!

poliburro 23-02-2007 20:54:43

Por que no pruebas con la clase

Código Delphi [-]
Try
tablas.ADOQuery1.SQL.Clear;
tablas.ADOQuery1.SQL.Text:=cad;
tablas.ADOQuery1.ExecSQL;
application.MessageBox('Registro Agregado','Información',mb_ok+mb_iconinformation);

except
on E:Exception do begin
// Levantamos la excepción
MessageDlg('Se asignara un nuevo folio:' +E.Message, mtError, [mbOK], 0);
self.CalcularFolio;
end;

vicac 24-02-2007 19:39:42

Gracias por tu respuesta.

He intentado lo que me indicaste y tampoco me funciono. ¿Alguna otra idea?


La franja horaria es GMT +2. Ahora son las 03:56:21.

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