Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-01-2011
teletranx teletranx is offline
Miembro
 
Registrado: feb 2004
Ubicación: Chile
Posts: 112
Poder: 21
teletranx Va por buen camino
Unhappy No Encuentro el Error del Trigger en FireBird 2.5

Saludos a todos
Tengo el siguiente problema:
El trigger funcionaba bien en la versión 1.5.6 y 2.1.3 pero cuando estoy actualizando la base de datos a la versión 2.5 y compilo los trigger y varios salieron con errores, verificando no encontre nada.
El siguiente trigger es un ejemplo de ello
Código SQL [-]
CREATE OR ALTER Trigger Rem_Maefin_Bd0 For Rem_Maefin
Active Before Delete Position 0
As
Declare Variable Ano Smallint;
Declare Variable Mes Smallint;
Declare Variable Fecini Date;
Declare Variable Fecter Date;
Declare Variable Fecha Date;
begin
 If (Old.Mf_Estado = 'N') Then Exit;
 Select Parrem.Pm_Anoliq, Parrem.Pm_Mesliq
    From Parrem
   Where Parrem.Ne = Old.Ne
  Into :Ano, :Mes;
  If (Old.Mf_Estado = 'F') Then
  Begin
    Fecha = Encodedate(1, :Mes, :Ano);
   -- Exception E_Asignado Fecha;
   -- Aislando el error
    if (Old.Mf_Fecter < Fecha) then
      exception e_asignado 'No puede Borrar Finiquito, es de otro Período';
   --
    FecIni = Encodedate(1, Mes, Ano);
    FecTer = Lastdaymonth(FecIni);
    Update Rem_Tabmov Set
           Rem_Tabmov.Tm_Marca = 'S'
     Where Rem_Tabmov.Ne = Old.Ne And
           Rem_Tabmov.Tm_Numrut = Old.Mf_Rutfun And
           Rem_Tabmov.Tm_Fecter >= :FecIni And
           Rem_Tabmov.Tm_Fecter <= :FecTer;
  End
end
Cuando compilo IbExpert versión 2011.01.11, sale lo siguiente
Cita:
can't format message 13:393 -- message system code -4.
unsuccessful metadata update.
MODIFY TRIGGER failed.
Existen otros trigers que utilizo las funciones Encodedate y Lastdaymonth y no tengo problema.
Tambien he utilizado la último versión de Interbase&Firebird Development Studio y sale lo mismo
No encontrado nada de nada
He probado línea por línea el trigger cuando escribo las líneas
if (Old.Mf_Fecter < Fecha) then
exception e_asignado 'No puede Borrar Finiquito, es de otro Período';

Se produce el error, posteriormente comento las líneas y complilo continuo el error, llego a comentar todo lo que está entre el Begin y el End final y continua el error, no puedo compitar el trigger.
No se que estoy haciendo mal.
Saludos y esperando sus comentario y ayuda
Teletranx
Responder Con Cita
  #2  
Antiguo 30-01-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿No será una versión beta con algún extraño error?
Responder Con Cita
  #3  
Antiguo 31-01-2011
teletranx teletranx is offline
Miembro
 
Registrado: feb 2004
Ubicación: Chile
Posts: 112
Poder: 21
teletranx Va por buen camino
La verssión es Firebird-2.5.0.26074_1_Win32.exe, no es beta.
Está instalada como servicio y como aplicación.
En resumen en todas las modalidades y siempre me da el mismo error

Saludos
Responder Con Cita
  #4  
Antiguo 31-01-2011
celades1 celades1 is offline
Miembro
 
Registrado: ago 2005
Posts: 116
Poder: 19
celades1 Va por buen camino
hola

Mi opinión es que tu BD no la has respaldado bien al pasarla a 2.5
Prueba de volverlo a hacer backup con 2.1 instalado
desinstalar, instalar y hacer restore con los gfix

ej

Cita:
gbak -c -v -t -rep fitxer.fbk fitxer.ib -user SYSDBA -password masterkey
-FIX_FSS_D ISO8859_1 -FIX_FSS_M ISO8859_1
Igual no tengo razón pero yo tambien tuve problemas al pasar de 2.0 a 2.5
Yo creo que no te rompas la cabeza con el trigger, sino es la BD mal restaurada.

En fin es una sugerencia

Panta
Responder Con Cita
  #5  
Antiguo 06-06-2011
teletranx teletranx is offline
Miembro
 
Registrado: feb 2004
Ubicación: Chile
Posts: 112
Poder: 21
teletranx Va por buen camino
Wink

Gracias a todos
La repuesta es
gbak -c -v -t -rep fitxer.fbk fitxer.ib -user SYSDBA -password masterkey
-FIX_FSS_D ISO8859_1 -FIX_FSS_M ISO8859_1
para Firebird 2.5
Lo hice que quedo todo OK

JC
p.d. por mi trabajo no he podido responder antes.
Responder Con Cita
  #6  
Antiguo 06-06-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por teletranx Ver Mensaje
Gracias a todos
La repuesta es
gbak -c -v -t -rep fitxer.fbk fitxer.ib -user SYSDBA -password masterkey
-FIX_FSS_D ISO8859_1 -FIX_FSS_M ISO8859_1
para Firebird 2.5
Lo hice que quedo todo OK

JC
p.d. por mi trabajo no he podido responder antes.
Bueno, aunque te sobra el -t porque eso es para hacer el backup 'transportable', no sirve para restaurar.
Responder Con Cita
  #7  
Antiguo 06-06-2011
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Hola.

Echando un vistazo a tu código, veo que utilizas las funciones EncodeDate y LastDayMonth. Estas funciones no son internas de Firebird, sino que son funciones importadas de una UDF. Antes de utilizarlas debes declararlas, ¿ lo has hecho ?.

Asegúrate probando esta consulta : select EncodeDate(1,1,2000) from rdb$database

Tienes algo mal en la instalación del cliente de Firebird y por eso no es capaz de mostrarte los mensajes de error (parece que no encuentra el archivo con las descripciones de los errores, o bien encuentra el archivo de una versión anterior de Firebird). Prueba a volver a instalar el cliente de Firebird 2.5 en ese equipo, y entonces te devolverá un mensaje de error más descriptivo del problema, con lo que será mucho más fácil resolver el problema.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #8  
Antiguo 06-06-2011
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Por cierto, para poder obtener un mensaje de error descriptivo, que nos indique cual es exactamente el problema para la compilación de ese código, además de necesitar tener correctamente instalado el cliente de Firebird 2.5, asegúrate también de que te estás conectando a través de la librería cliente fbclient.dll correspondiente a Firebird 2.5 (la ubicación de la librería cliente que utilizas, es uno de los parámetros de tu conexión a la base de datos).

NOTA: El cliente de Firebird se instala mediante el mismo instalador que el Servidor de Firebird, solo que durante la instalación tienes que seleccionar la opción correspondiente.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
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
No encuentro el error en esta sentencia Sql..... verito_83mdq SQL 13 14-01-2011 18:32:10
Trigger Firebird tec Firebird e Interbase 3 04-10-2010 21:46:43
Crónica de un encuentro inevitable...con Firebird AzidRain La Taberna 11 05-05-2008 03:33:47
No Encuentro El Error En Este *.rc MON___ Varios 4 05-09-2007 13:50:28
trigger y firebird ebeltete Firebird e Interbase 1 22-06-2007 15:03:38


La franja horaria es GMT +2. Ahora son las 08:36:15.


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