Jump to content


Photo

Tipos de errores que maneja la librería ZeosLib


  • Please log in to reply
9 replies to this topic

#1 systemix

systemix

    Member

  • Miembros
  • PipPip
  • 15 posts

Posted 16 July 2013 - 09:39 AM

Hola a todos  (h)!!

Por favor quisiera saber si ustedes tienen un manual o me pueden indicar los tipos de errores que maneja la librería ZeosLib. Por ejemplo, la clase y el código de error si no se logra conectar a base de datos, o si no encuentra un campo de la tabla.

Actualmente trabajo bajo delphi 7  con ZeosLib 7.0.3.

De antemano, muchisimas gracias
  • 0

#2 systemix

systemix

    Member

  • Miembros
  • PipPip
  • 15 posts

Posted 17 July 2013 - 06:58 AM

:(
  • 0

#3 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4945 posts
  • LocationMéxico

Posted 17 July 2013 - 07:40 AM

Hola amigo, en lo personal te recomiendo usar el mensaje de error devuelto por la base de datos, así no dependerás de que Zeos lo haya o no incluido en su soporte. Un ejemplo de cómo puedes manejar los errores sería:


delphi
  1. Try
  2. ZConnection.open;
  3. except
  4.   On Error: Ecception Do
  5.     ShowMEssage('Ha ocurrido el siguiente error al establecer la conexión: ' + Error.Message);
  6. End;



Claro que puedes incluir en el on Error todo el código destinado a gestionar problemas con la base de datos. 

Un abrazo amigo.
  • 0

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14469 posts
  • LocationMéxico

Posted 17 July 2013 - 07:44 AM

Hola systemix, bienvenido a DelphiAccess

Lamento no ser de ayuda, yo no uso Zeos.

Saludos
  • 0

#5 systemix

systemix

    Member

  • Miembros
  • PipPip
  • 15 posts

Posted 17 July 2013 - 08:12 AM

Hola amigo, en lo personal te recomiendo usar el mensaje de error devuelto por la base de datos, así no dependerás de que Zeos lo haya o no incluido en su soporte. Un ejemplo de cómo puedes manejar los errores sería:


delphi
  1. Try
  2. ZConnection.open;
  3. except
  4.   On Error: Ecception Do
  5.     ShowMEssage('Ha ocurrido el siguiente error al establecer la conexión: ' + Error.Message);
  6. End;



Claro que puedes incluir en el on Error todo el código destinado a gestionar problemas con la base de datos. 

Un abrazo amigo.


Gracias amigo, por responder. Bueno estoy en eso :D. Es que estoy desarrollando una aplicación Daemon en delphi 7, y estoy usando ZeosLib conectarme a MySQL.

La idea es adelantarme a errores de conexión de red o a una falla de conexión a las bases de datos, y guardar en un log el error ocurrido. En delphi se consigue algunos tipos de errores que me ayudan, pero me ha costado encontrar por internet documentación de la Zeos que indique una lista de tipos de error o códigos de errores para formar una clase de excepciones personalizadas para el daemon y guardar el evento en el log, paralizar ciertas funciones, etc.

De todas formas voy a seguir haciendo lo que me sugieres.
Un abrazo  (y).
  • 0

#6 systemix

systemix

    Member

  • Miembros
  • PipPip
  • 15 posts

Posted 17 July 2013 - 08:14 AM

Hola systemix, bienvenido a DelphiAccess

Lamento no ser de ayuda, yo no uso Zeos.

Saludos


No te preocupes amigo egostar, agradezco tu respuesta  (h)
  • 0

#7 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2092 posts
  • LocationRepública Dominicana

Posted 17 July 2013 - 08:18 AM

Saludos.

Creo que podrías forzar alguna excepcion y buscar en los fuentes de Zeos.

Me explico, por ejemplo le pones una dirección incorrecta de donde esta localizada la base de datos y tratas de conectarte, no le pones ningún manejador de excepciones a tu código sino un simple Connect := True.

Al momento que Delphi arroje la excepcion pues copias el nombre y busca dentro del código fuente de Zeos, quizás puedas encontrar algo.
  • 0

#8 bigleaguer

bigleaguer

    Advanced Member

  • Miembros
  • PipPipPip
  • 66 posts

Posted 17 July 2013 - 02:39 PM

Hola a todos  (h)!!

Por favor quisiera saber si ustedes tienen un manual o me pueden indicar los tipos de errores que maneja la librería ZeosLib. Por ejemplo, la clase y el código de error si no se logra conectar a base de datos, o si no encuentra un campo de la tabla.

Actualmente trabajo bajo delphi 7  con ZeosLib 7.0.3.

De antemano, muchisimas gracias


Saludos, zeos utiliza su propia clase para el manejo de excepciones llamada EZSQLException, ubicada en la unidad ZDbcIntfs.pas. Debido a que zeos maneja múltiples base de datos, para lograr lo que quieres tienes que conocer el código de error que devuelve tu motor.

Ejm para MySQL:



delphi
  1. try
  2.   ZConnection.open;
  3. except
  4.   on E:  EZSQLException do
  5.   begin
  6.     case E.ErrorCode of
  7.       1152:  ShowMessage('Conexión Abortada.');
  8.       1088:  ShowMessage('Registro Duplicado.');
  9.       // Más códigos de error...
  10.     else
  11.       ShowMessageFmt('Error: %d - Mensaje: %s', [E.ErrorCode, E.Message]);
  12.     end; 
  13.   end;
  14. end;




  • 0

#9 systemix

systemix

    Member

  • Miembros
  • PipPip
  • 15 posts

Posted 18 July 2013 - 07:35 AM

Gracias a todos por sus respuestas. Con sus aportes me han ayudado a hacer las primeras pruebas de mi proyecto.

De tanto leer de aquí para allá, encontré que si trabajo con Zeos (MySQL), los códigos de error me los trae de la librería de la DB como tal.

Es decir, que por ejemplo, el sistema arroja una excepción de código de error 1045, este código no viene de la librería Zeos, sino de MySQL.

Para obtener una lista de errores la puedo ver en esta página http://dev.mysql.com...ges-server.html

y así puedo crear mi propia clase exception_daemon, para trabajar con las excepciones según sea el código de error.

Considero el caso resuelto. Gracias de nuevo  (y)
  • 0

#10 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4945 posts
  • LocationMéxico

Posted 18 July 2013 - 08:09 AM


Para obtener una lista de errores la puedo ver en esta página http://dev.mysql.com...ges-server.html

y así puedo crear mi propia clase exception_daemon, para trabajar con las excepciones según sea el código de error.

Considero el caso resuelto. Gracias de nuevo  (y)


Gracias por compartinos la solución a tu duda. Esta información será muy útil para más de uno.
  • 0




IP.Board spam blocked by CleanTalk.