FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema con transacciones, sqlite y componentes ZEOS
Bueno resulta que estoy desarrollando un programa estilo punto de venta codificado en delphi 2007, uso DB sqlite3 y componentes zeos para la conexion, en la parte de registrar las ventas utilizo transacciones con un zquery, todo perfecto, el problema radica en que tengo un boton para que a mitad de venta puedan consultar la lista de productos con codigos, precios y cantidades de los mismos, pero resulta que si estoy a mitad de la venta y ya di de baja algunos productos (conectada con zquerys y extrayendo datos con selects) no me actualiza los datos, al parecer la transacción me bloquea los datos o mas bien bloquea la DB (incluso se genera un temporal de la DB cuando inicio la trancaccion, son geniales las transacciones :P) y no puedo ver actualizadas las cantidades sino hasta que termino la transaccón, pero lo mas extraño del asunto es que en mitad de venta uso una ztable para verificar la cantidad en almacen y no vender productos que no tengo, y ahi sii me manda los datos actualizados, si se vende un producto lo descuenta, he intentado bastantes cosas para refrescar estos datos en la consulta de productos cuando se bloquea por la transacción, pero al parecer nada funciona, no se que hacer, la verdad es muy importante esto para mi porque es mi trabajo para graduarme de la universidad, ojala puedan ayudarme, saludos y gracias.
|
#2
|
||||
|
||||
La idea es que si estás en mitad de una transacción, y desde fuera consultas datos de tablas relacionados con la transacción puedes obtener cosas no coherentes; Dependiendo del Isolation Level que estés utilizando obtendrás fantasmas, lecturas sucias o incluso llegarás a bloqueos (como te está pasando).
Prueba a lanzar las consultas utilizando la misma transacción que tienes abierta.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
||||
|
||||
Cita:
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Última edición por rgstuamigo fecha: 13-11-2009 a las 16:59:24. |
#4
|
|||
|
|||
Cita:
|
#5
|
|||
|
|||
Cita:
Incluso he utilizado un programa externo para el manejo de la DB y con sentencias sql hago transacciones, inserto, elimno y consulto datos y si los maneja actualizados (osea que no es problema de sqlite), seria mas bien "problema con el zquery" por llamarlo de alguna manera. |
#6
|
||||
|
||||
Cita:
De todas formas tendrias que informarte como trabaja SQLite en en ese sentido. Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#7
|
||||
|
||||
¿Y seguro que esa consulta se hace utilizando esa misma transacción?
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#8
|
|||
|
|||
Pues comienzo en un zquery la transacción, me puedo estar paseando por todo el programa y la transacción continua y hasta que no doy un rollback o un commit se guardan o cancelan cambios, por eso estoy seguro que aun esta dentro de la transacción y si no estuviera en la transaccion, se supone que ya estuviera commiteada o con un rollback y entonces con mayor razón me debería mostrar datos actualizados.
|
#9
|
|||
|
|||
Bueno aunque estube pensando, no hago el select con el mismo query que inicio la transacción, osea aun continuo en la transacción pero uso un query diferente, no se si eso tenga algo que ver ¿?, yo me supongo que no, pero puede que me equivoque.
|
#10
|
|||
|
|||
Parece que por fin encontré la solución a mi problema, resulta que no se porque diantres coloqué zconections por cada forma que tengo, eso quiere decir que tengo una por punto de venta y otra por busqueda de productos y al realizar la transacción en una zconnection esta bloquea la DB y en la segunda zconnection solo muestra informacion anterior a la transaccion, pero si uso la misma coneccion en la busqueda me muestra datos actuales durante la transaccion .
Gracias a las personas que intentaron ayudarme, aunque no nos entendieramos del todo :P y sobre todo por darme la idea de que tal vez los querys diferentes tenian algo que ver con el bloqueo, eso me llevo a las zconnections diferentes. Saludos. |
#11
|
||||
|
||||
Cita:
Pues a eso es a donde quería llegar.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema... Delphi2009, Zeos y SQLite | lookmydoom | Varios | 4 | 08-04-2009 23:01:19 |
Transacción maestro-detalle con Zeos y SQLite | peccatum | Conexión con bases de datos | 3 | 04-04-2009 05:30:10 |
transacciones y ZEOS | david_uh | Varios | 0 | 26-05-2007 19:44:03 |
Crear DB SQlite con Zeos | userlazarus | Conexión con bases de datos | 3 | 03-09-2006 09:08:01 |
SQLite con Zeos Controls | bitbow | Tablas planas | 1 | 11-08-2006 17:58:39 |
|