![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Hola Casimiro, voy a probar de cambiar la transacción a no wait, pero a mi me resulta muy extraño... porque se supone que la transacción finaliza y despues de un tiempo comienza la otra... y lo peor de todo es que le dice al operador que todo esta bien, y no le muestra el error, aclaro, yo guardo el mensaje de error en un archivo de texto, pero muestro un error personalizado en pantalla, y ese error personalizado no se ve...
Muchas gracias casimiro!!! Saludos!!
__________________
La amistad es la union de dos almas para formar una sola. |
#2
|
||||
|
||||
Hola.
El mensaje de error es bastante claro, desde una transacción se intenta modificar un registro bloqueado por una modificación no confirmada en otra transacción aún activa. Es un papelón, pero te toca revisar todo tu código, puesto que alguna transacción queda abierta. Recuerda que el conflicto no tiene porqué estar solo la tabla de stocks (aunque parece lo más lógico), puede ser cualquier tabla que intenten modificar ambas transacciones (como la de Logs, ...). NOTA: Las transacciones tienen que ser lo más cortas posibles, abres la transacción, haces la modificación y la cierras enseguida. Por esto me gusta utilizar ClientDatasets, nunca tengo transacciones abiertas en mi programas, ni siquiera para mostrar datos en pantalla : abro la transacción, cargo el ClientDataset y cierro la transacción. Saludos. |
#3
|
||||
|
||||
Por cierto, puedes probar una chapuza para salir del paso mientras lo arreglas bien.
Cambia el nivel de aislamiento de la transacción a READ UNCOMMITED (no estoy seguro de si Firebird acepta este nivel de aislamiento, pero como forma parte del estándar, puedes probar). En este nivel de aislamiento no hay bloqueos, aunque una transacción no haya terminado sus cambios ya son visibles desde las otras transacciones. En cierta manera es como trabajar sin transacciones, lo cual evidentemente conlleva sus propios problemas. Yo solo lo utilizaría como un parche temporal. Última edición por guillotmarc fecha: 28-01-2010 a las 14:56:39. |
#4
|
|||
|
|||
Hola guillotmarc, Estuve viendo todo el procedimiento de grabacion... realmente es muy simple y esta asegurado el commit para el cierre de la transacción. En fin, voy a seguir viendo cual puede ser el error, y voy a parchar el sistema con tus sugerencias!
Ahh otra cosa, la actualizacion del stock lo hago con un procedimiento almacenado, crees que si lo hago desde el trigger de grabacion de compras me crearia algun inconveniente mas? Gracias por todo! Saludos!! Ricardo.
__________________
La amistad es la union de dos almas para formar una sola. |
#5
|
||||
|
||||
Hola Ricardo.
En principio no debería haber mucha diferencia entre actualizar el stock en un procedimiento o en un trigger. Respecto a la grabación de datos, no sé que decirte, por alguna parte hay ocasiones en que se debe quedar la transacción abierta, hay que revisar cuando puede ocurrir eso. Como comentamos antes, tienes que intentar que tus transacciones sean tan cortas como sean posibles, cuando quieras guardar datos tienes que hacerlo todo de golpe : abrir transacción, modificar y confirmar. Cualquier transacción que se mantenga abierta puede ser un problema de mantener registros bloqueados que no podrán ser modificados por otras transacciones. Saludos. |
#6
|
|||
|
|||
Muchas gracias guillotmarc, ahora estoy reeviendo todo el proceso de grabacion de compras, lo estuve modificando completamente, asique tengo una sola pregunta que hacer, pero voy a crear un nuevo hilo!
Desde ya muchas gracias!!! Saludos!!! Ricardo.
__________________
La amistad es la union de dos almas para formar una sola. |
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema con master-detail en Access | cartmanrules | Conexión con bases de datos | 0 | 24-02-2009 19:01:41 |
Problema con Master/Detail en ReportBuilder | agustibaldo | Impresión | 1 | 27-09-2007 20:03:30 |
Incrementar el id del detalle en master/detail... | Arturo | MySQL | 2 | 07-07-2006 19:24:09 |
Problema con Edicion En Master-Detail | Paradiso | Conexión con bases de datos | 0 | 26-01-2005 06:28:28 |
Problema con ¿master-detail? | fortran | Tablas planas | 3 | 10-12-2003 09:17:48 |
![]() |
|