Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Dead lock en un execute procedure. (https://www.clubdelphi.com/foros/showthread.php?t=66788)

afxe 12-03-2010 10:01:24

Dead lock en un execute procedure.
 
Hola a todos.
Estoy usando FB2.0 y he puesto mi aplicación en marcha en un negocio con muchos terminales de venta. Para actualizar el fichero de stock uso los trigger de la tabla de movimimientos, cuando nuevas lineas de venta resto del fichero de stock, cuando se modifica una linea de venta sumo la cantidad antigua (old.unidades) y resto la nueva cantidad (new.unidades), y cuando se elimina un registro de venta se vuelve a sumar las unidades al stock de la tienda.
El caso es que lo hice en un stored procedure (actualiza_stock) que llamo en los triggers AFTER INSERT y AFTER UPDATE restando de stock y BEFORE UPDATE y BEFORE DELETE sumando al stock.
Cuando dos puestos a la vez validan una venta de muchos productos se me está produciendo un Deadlock en el stored procedure mencionado, cosa que no pasaría si inserto el código de actualización de stock en cada trigger en vez de tenerlo en un stored procedure.
¿Qué se os ocurre para manejar esta incidencia? es que tengo 199 stored procedures que (aunque no todas se llaman en triggers) sería un rollazo cambiar.

Gracias y saludos.


La franja horaria es GMT +2. Ahora son las 06:01:06.

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