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 03-04-2010
erickperez6 erickperez6 is offline
Miembro
 
Registrado: may 2003
Posts: 152
Poder: 22
erickperez6 Va por buen camino
no se esta cumpliendo el ACID compliant en este caso?

Me he encontrado con un caso demasiado extraño con un cliente

Sucede que tengo un trigger que se dispara cuando se cambiar un campo que utilizo como "estatus", cuando este campo se le asigna el valor de "cerrado", actualiza dos tablas y crea un registro nuevo en otra (3 operaciones).

Resulta que me he encontrado con un registro con el estatus "cerrado", pero las operaciones que debió realizar el trigger ningunas fueron ejecutadas.

En casos que he visto "casi" silimares, si el trigger falla por alguna excepcion, todos los cambios se reversan, es decir, hasta el campo del "estatus" vuelve a su estado original, para mantener la atomicidad de la transaccion.

Hice alguna operaciones parecidas para simular la situacion del cliente y todas las pruebas fueron exitosas, incluso al cliente se le resolvio el caso anulando ese registro y volver a realizar la operacion exactamente igual y todo paso bien.

Solo me he topado con este caso una sola vez, nunca se ha vuelto a repetir, pero siempre me he quedado con la incógnita de la causa, pensando en corrupción de la base de datos o un fallo momentáneo del motor de la base de datos o no se que cosa.
Responder Con Cita
  #2  
Antiguo 03-04-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Dudo mucho que sea un fallo de la BD, aunque quién sabe, de todas formas ¿qué versión estás usando?, ¿has visto en firebirdsql.org la lista de bugs?, por si acaso fuese algún fallo puntual en alguna revisión.
Responder Con Cita
  #3  
Antiguo 04-04-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
La verdad es que sin ver el código es difícil decir nada, pero yo me inclino en que es mucho más probable que sea un fallo en el código de tus triggers que no un problema del motor de la base de datos.

Las actualizaciones hechas en un trigger solo se tirarán para atras si salta una excepción.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #4  
Antiguo 04-04-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Como dice guillotmarc, lo más seguro es que tu trigger está mal programado y en algún caso si se ejecuta correctamente por lo que no hay excepcion y no hay rollback. Si pones el código te podríamos ayudar mucho más.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
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
La operacion no esta permitida en este contexto Rako SQL 3 17-12-2008 17:04:02
que esta mal en este FOR SELECT Milperrimo Firebird e Interbase 9 08-10-2007 16:29:28
Como mejorar la velocidad en este caso.... Alfredo Varios 4 02-09-2005 22:45:11
Donde esta este componente ? Markos1970 OOP 5 14-07-2005 21:56:30
Hacer aplicaciones Windows Compliant? __cadetill Debates 1 02-10-2003 01:41:07


La franja horaria es GMT +2. Ahora son las 15:33:19.


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