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)
-   -   Dbgrid no actualiza (https://www.clubdelphi.com/foros/showthread.php?t=36138)

rmenor 03-10-2006 16:06:46

Dbgrid no actualiza
 
He estado buscando y nada que no consiguo entender porqué el dbgrid no se actualiza.Os cuento:

Quisiera hacer un programa con base de datos centralizada en servidor y estoy aprendiendo a usar firebird desde delphi 7. El caso es que ya he conseguido crear una base de datos de prueba y la he unido con los componente mercury que me dijeron que iban muy bien.
Ahora para la prueba solo tengo puesto un dbgrid un dbnavigator y los componentes para conectar a la base de datos.
Todo funciona perfectamente si solo lo uso desde un puesto pero cuando modifico algún registro, no se ve reflejado en el dbgrid del resto de usuarios hasta que no cierro y abro la aplicación donde ejecuté la transacción. Y si modifico algo de un regitro ya tocado desde otro usuario me da un mensaje de deadlock que ya se que es un bloqueo del registro. Es como si permaneciera bloqueado eternamente ese registro.
Sin embargo tengo un campo autoincremental y si añado un registro desde varios usuarios lo hace bien pero no aparecen en los demás usuarios sin embargo el campo autoincremental lo hace bien.
Osea que mi pregunta es donde y como tengo que indicarle a firebird que ya se ha terminado la transacción y que debe decir al resto de usuarios que ese registro a sido modificado.
A ver si alguien me explica que estoy haciendo mal. Gracias.

kovaski 04-10-2006 15:51:28

Cita:

Empezado por rmenor
He estado buscando y nada que no consiguo entender porqué el dbgrid no se actualiza.Os cuento:

Quisiera hacer un programa con base de datos centralizada en servidor y estoy aprendiendo a usar firebird desde delphi 7. El caso es que ya he conseguido crear una base de datos de prueba y la he unido con los componente mercury que me dijeron que iban muy bien.
Ahora para la prueba solo tengo puesto un dbgrid un dbnavigator y los componentes para conectar a la base de datos.
Todo funciona perfectamente si solo lo uso desde un puesto pero cuando modifico algún registro, no se ve reflejado en el dbgrid del resto de usuarios hasta que no cierro y abro la aplicación donde ejecuté la transacción. Y si modifico algo de un regitro ya tocado desde otro usuario me da un mensaje de deadlock que ya se que es un bloqueo del registro. Es como si permaneciera bloqueado eternamente ese registro.
Sin embargo tengo un campo autoincremental y si añado un registro desde varios usuarios lo hace bien pero no aparecen en los demás usuarios sin embargo el campo autoincremental lo hace bien.
Osea que mi pregunta es donde y como tengo que indicarle a firebird que ya se ha terminado la transacción y que debe decir al resto de usuarios que ese registro a sido modificado.
A ver si alguien me explica que estoy haciendo mal. Gracias.

Hola de nuevo :D.

Te respondo de nuevo. Inserta el codigo de abrir y cerrar el dataset en el "After post".

Suerte!!!

rmenor 04-10-2006 16:26:53

Lo he comentado en otro hilo
 
Es que no hay manera con esto tampoco algo estoy haciendo mal me podrían enviar algún ejemplo hecho que funcione para delphi7.

rmenor 06-10-2006 01:21:20

Me respondo a mi mismo
 
Ya se lo que pasaba he seguido los pasos de esta guia http://www.clubdevelopers.com/index.php?p=58#fb6 y lo he conseguido.

Gracias a los que me habeis respondido y a los que no pues un punto menos pa vosotros si sabiais la respuesta.


La franja horaria es GMT +2. Ahora son las 18:07:52.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi