Ir al contenido


Foto

Tipos de errores que maneja la librería ZeosLib


  • Por favor identifícate para responder
9 respuestas en este tema

#1 systemix

systemix

    Member

  • Miembros
  • PipPip
  • 15 mensajes

Escrito 16 julio 2013 - 09:39

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 mensajes

Escrito 17 julio 2013 - 06:58

:(
  • 0

#3 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 17 julio 2013 - 07:40

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
  • 14.242 mensajes
  • LocationMéxico

Escrito 17 julio 2013 - 07:44

Hola systemix, bienvenido a DelphiAccess

Lamento no ser de ayuda, yo no uso Zeos.

Saludos
  • 0

#5 systemix

systemix

    Member

  • Miembros
  • PipPip
  • 15 mensajes

Escrito 17 julio 2013 - 08:12

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 mensajes

Escrito 17 julio 2013 - 08:14

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
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 17 julio 2013 - 08:18

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 mensajes

Escrito 17 julio 2013 - 02:39

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 mensajes

Escrito 18 julio 2013 - 07:35

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
  • 4.945 mensajes
  • LocationMéxico

Escrito 18 julio 2013 - 08:09


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