Ver Mensaje Individual
  #7  
Antiguo 08-03-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Reputación: 25
eduarcol Va por buen camino
Cita:
Empezado por gorsan Ver Mensaje
Ya. El sistema maneja todas las excepciones pero yo lo que quiero es lanzar mi propia excepcion para que el usuario la vea tal como yo quiero que la vea y lanzarle el mensaje que yo planifique. Da mas sensacion de control.
Eso que tu propones yo lo hice con el BDE, capturando la excepcion desde delphi, aqui esta el codigo para que te hagas una idea. Pero en Firebird he dejado que el manejador de base de datos se encargue de todo eso, menos trabajo para el programador.

Código Delphi [-]
try
         Result := True;
         T.Active := False;
         T.Exclusive := False;
         T.DatabaseName := cRutaDatos;
         T.TableName := NT;
         T.IndexName := Indices;
         T.Active := True;
      except
      on E: EDBEngineError do
      begin
         ErrorCode := E.Errors[0].ErrorCode;
         case ErrorCode of
            DBIERR_SYSFILEOPEN,
            DBIERR_SYSFILEIO,
            DBIERR_SYSCORRUPT,
            DBIERR_NOCONFIGFILE,
            DBIERR_CFGCANNOTWRITE,
            DBIERR_CFGMULTIFILE,
            DBIERR_REENTERED,
            DBIERR_CANTFINDIDAPI,
            DBIERR_CANTLOADIDAPI,
            DBIERR_CANTLOADLIBRARY,
            DBIERR_TEMPFILEERR,
            DBIERR_MULTIPLEIDAPI,
            DBIERR_SHAREDMEMCONFLICT:
               msgError( msErrorSistema + NT );
            DBIERR_LOCKED,
            DBIERR_UNLOCKFAILED,
            DBIERR_FILEBUSY,
            DBIERR_DIRBUSY,
            DBIERR_FILELOCKED,
            DBIERR_DIRLOCKED,
            DBIERR_ALREADYLOCKED,
            DBIERR_NOTLOCKED,
            DBIERR_LOCKTIMEOUT,
            DBIERR_GROUPLOCKED,
            DBIERR_LOSTTBLLOCK,
            DBIERR_LOSTEXCLACCESS,
            DBIERR_NEEDEXCLACCESS,
            DBIERR_RECGROUPCONFLICT,
            DBIERR_DEADLOCK,
            DBIERR_ACTIVETRAN,
            DBIERR_NOACTIVETRAN,
            DBIERR_RECLOCKFAILED,
            DBIERR_OPTRECLOCKFAILED,
            DBIERR_OPTRECLOCKRECDEL,
            DBIERR_ENLISTFAILED,
            DBIERR_NETFILELOCKED,
            DBIERR_NETMULTIPLE:
               msgError( msTablaBloqueada + NT );
            DBIERR_FILECORRUPT:     msgError(msTablaCorrupta + NT);
            DBIERR_INDEXCORRUPT:    msgError(msIndiceCorrupto +NT);
            DBIERR_READERR:         msgError(msErrordeLectura +NT);
            DBIERR_DIRNOACCESS:     msgError(msSinAccesoaDirectorio + NT);
            DBIERR_FILENOACCESS:    msgError(msSinAccesoaArchivo + NT);
            DBIERR_NOMEMORY:        msgError(msSinMemoria + NT);
            DBIERR_OPENTBLLIMIT:    msgError(msMuchasTablasAbiertas + NT);
            DBIERR_NOSHAREDMEMORY:  msgError(msSinMemoriaCompartida + NT);
            DBIERR_INVALIDFILENAME: msgError(msNombreArchivoIncorrecto + NT);
            DBIERR_NOSUCHINDEX:     msgError(msNombreIndiceIncorrecto + NT);
            else                    msgError(msErrorDesconocido + E.Message);
         end;
         Result := False;
      end;
      end;
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita