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)
-   -   wait transactions con DBE (https://www.clubdelphi.com/foros/showthread.php?t=26098)

Ivanzinho 13-10-2005 09:39:12

wait transactions con DBE
 
Hola foro, estoy utilizando firebird 1.5 con componentes BDE, pero me encuentro con un problema de concurrencia entre transacciones, ya que si dos transacciones se ejecutan simultanemente sobre el mismo registro de la BD me salta el siguiente error : lock conflict on no wait transaction.

¿Alguien sabe como puedo configurar los componetes BDE para que en un caso como este las transacciones esperen a que se desbloquee el registro?

Muchas gracias por vuestra atención.

Lepe 13-10-2005 15:58:59

Te aconsejo que dejes el BDE para acceder a Firebird, las razones no vienen al caso, pero puedes usar los componentes zeos (gratuitos, libres y con código fuente).

En cuanto al error, quizás sea mejor que digas que estas haciendo y qué quieres obtener. Esperar a que termine la transaccion, puede traducirse despues en un Dead Lock, que es peor que un simple lock conflict on no wait transaction.

saludos

Ivanzinho 14-10-2005 09:06:03

Hola Lepe, lo tengo es una aplicación que cubre el proceso de albaraneado y facturación a partir de pedidos utilizando Delphi 5 y Paradox. Cada vez que se realiza un albarán hai que actualizar el almacén (entre otras cosas) y cada vez que se hace una factura se pasan las líneas de albarán a la tabla de albaranes facturados, se actualiza el acumulado de ventas,...

La aplicación funcionaba correctamente hasta que aumento el número de usuarios, ya que en este momento empezaron a producirse conflictos al trabajar desde varios puestos sobre los mismos productos, produciendose errores en el stockaje, quedaban albaranes a medio facturar, etc.. Todo esto debido a que se producian choques al intentar desde varios puestos actualizar los mismos productos.

Lo que necesito ahora es que si hay una transacción iniciada (tanto por creación de albaranes como de facturas) y llega otra transacción que intente modificar un producto de almacén bloqueado por la primera transacción, esta última se espere hasta que finalice la primera.

En este caso no creo que se produzca un Dead Lock, ya que en ningun caso se va a producir que dos transacciones se bloqueen entre si y el tiempo de duracion de una transacción debería ser de unas pocas milesimas.

Lo de la utilización de los componentes BDE es porque son los que estaba usando con Paradox y al realizar la migración a interbase, si estos me permiten hacer lo que necesito, prefiro usarlo ya que el cambio es más rápido (también acepto sugerencias en esto :p ).

Gracias por vuestra atención y perdón por la parrafada :(.

AGAG4 15-10-2005 16:03:52

Te Recomiendo....
 
Te Recomiendo usar los IBX ó FibPlus ya que son componentes Nativos de Interbase y Firebird, es decir fueron creados especialmente para esta Base de datos.... y trabajan SuperRápidos....

Saludos....


La franja horaria es GMT +2. Ahora son las 18:03:56.

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