FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
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.
__________________
Si no lees esto no vivirás tranquilo Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao) |
#2
|
||||
|
||||
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
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#3
|
||||
|
||||
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 ). Gracias por vuestra atención y perdón por la parrafada .
__________________
Si no lees esto no vivirás tranquilo Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao) Última edición por Ivanzinho fecha: 14-10-2005 a las 12:37:50. |
#4
|
||||
|
||||
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.... |
|
|
|