Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-10-2007
Avatar de quinqui
quinqui quinqui is offline
Miembro
 
Registrado: jun 2006
Posts: 14
Poder: 0
quinqui Va por buen camino
Red face Como capturar el error sql desde Zeos?

Holas!

Esa es mi pregunta: tengo un programita en Delphi 5 que se conecta a un servidor Mysql 4 usando el componente Zeos.
Ahora bien, el programa se encuentra enviando datos locales al servidor remoto constantemente. La idea es que si un dato se repite, se lo salte y continúe con el siguiente, o sea, que no se caiga todo el proceso.

Yo estaba usando el TRY EXCEPT para captar la ocurrencia del error.
Con "on E: Exception do..." dentro del EXCEPT es mejor aún.
Pero aun no logro saber qué propiedad, función o lo que sea que traiga ZEOS me retorna el código del Error que Mysql devuelve al producirse un error.

Por ejemplo, el clásico error de key duplicada es el codigo 1062. ¿Cómo puedo obtener ese numerito desde Delphi para así manejar de mejor manera mi programita?

Eso es. Muchas gracias de antemano!

Saludos!!
Responder Con Cita
  #2  
Antiguo 17-09-2008
Avatar de PaFernan99
PaFernan99 PaFernan99 is offline
Miembro
 
Registrado: mar 2004
Ubicación: La Plata, Buenos Aires, Argentina
Posts: 79
Poder: 21
PaFernan99 Va por buen camino
Arrow

Hola quinqui!
La forma de manejar el error sería la siguiente:

Código Delphi [-]
procedure TForm1.ZqMasterPostError(DataSet: TDataSet; E: EDatabaseError; 
  var Action: TDataAction); 
begin 
  if e is EZDatabaseError then 
  begin 
    case EZDatabaseError(E).ErrorCode of 
      1062 : begin 
        Showmessage ('Ya existe una key con este número.'); 
      end; 
     else 
        Showmessage ('Se ha producido un error al intentar guardar el registro:' + 
            chr(13) + chr(13) + inttostr(EZDatabaseError(E).ErrorCode) + 
            ' -> ' + E.Message); 
    end; 
    Action := daAbort; 
  end; 
end;

Como podrás notar, haciendo EZDatabaseError(E).ErrorCode podés obtener el código de error.

Saludos!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
como capturar error de registro duplicado ajmr81 Firebird e Interbase 3 17-10-2006 10:36:07
como capturar errores con los componentes zeos...... chileno Conexión con bases de datos 1 05-01-2006 16:53:39
capturar un error desde un datanavigator Leonardo Conexión con bases de datos 3 17-10-2005 04:48:23
Como capturar un error de base de datos carlos gonzalez Varios 2 20-06-2005 21:07:11
Como capturar puertos desde una dll... ??? Blazer2104 Internet 0 15-11-2004 23:14:26


La franja horaria es GMT +2. Ahora son las 23:00:49.


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
Copyright 1996-2007 Club Delphi