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)
-   -   manejo de excepciones try y except no funciona (https://www.clubdelphi.com/foros/showthread.php?t=27002)

gulder 09-11-2005 17:41:58

manejo de excepciones try y except no funciona
 
hola otravez por aqui ...

esoy capturando la siguiente excepcion pero no me funciona

Código Delphi [-]
  try
     ADOQuery1.SQL.Clear;
     ADOQuery1.SQL.Add(Edit1.Text);
     ADOQuery1.Active:=true;
   except on e: exception do
   begin
     ShowMessage('Error de sentencia'+e.Message);
   end;
 end;
supuestamente cuando escribo en el edit1 y no coresponde a ninguna consulta osea escribo mal las instrucciones deberia mostrarme el mensaje que coloque en la parte del except pero no es asi me sale uno que lo muestra delphi y se me traba la aplicacion no se porque no me funciona.

grasias de ante mano gulder........? :confused:

jachguate 09-11-2005 18:16:30

El manejo de excepciones de delphi funciona correctamente, pero ADO (al menos su manejo desde delphi) está hecho con los pies, así que muchos errores simplemente no se convierten en una excepción. ADO procesará la condición de error, muestra el mensaje y listo!.

Para el buen programador de delphi, es un dolor de cabeza trabajar con estos componentes. Al menos lo fue para mi en su tiempo y doy gracias de haberme librado de ellos. :D

Hasta luego.

;)

gulder 09-11-2005 18:29:52

grasias jachguate
 
grasias por tu comentario jachguate jejej hasta luego foro

ContraVeneno 09-11-2005 20:12:55

Trata de buscar si existe alguna actualización de ADo para el delphi que estes utilizando, al menos para delphi 5 existen dos actualizaciónes de ADO...

en fin, trata lo siguiente a ver que te sale:
Código Delphi [-]
 with AdoQuery1 do begin
  if active then close;
  SQL.Clear;
  SQL.Add(edit1.text);
  Try
   Open;
  Except on E:Exception do
   showmessage(E.ClassName+' - '+E.message);
  end; //Try
 end; //with

La recomendación sería que no utilizaras E:Exception, ya que de esa manera estarías capturando todos los errores y siempre obtendrías el mismo error... alguien alguna vez dijo "podría haber una guerra nuclear y seguiría obteniendo el mismo mensaje". Y en esa parte el E.ClassName te puede ayudar....

gulder 10-11-2005 14:50:00

grasias ContraVeneno
 
grasias ContraVeneno voy a probar lo que mencionastes de las actualizaciones de los ado y el codigo que colocastes en el foro... jejeje


La franja horaria es GMT +2. Ahora son las 11:22:46.

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