Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como y Cuando actualizar las tablas para trabajar en red (https://www.clubdelphi.com/foros/showthread.php?t=87788)

Delphitest 25-02-2015 20:17:24

Como y Cuando actualizar las tablas para trabajar en red
 
Buenas tardes,

no pensé que tendría problemas con este tema pero al final creo que me estoy liando de tantas vueltas que le estoy dando.

Trabajo con ADO y Access, tengo instalado el ejecutable y la base de datos access en un servidor con s.o. windows server y desde 3 puestos he creado unos accesos directos al ejecutable para poder trabajar. Se ejecuta y se puede trabajar sin problemas.

La verdad es que las pruebas que he hecho han funcionado bien pero de vez en cuando tengo problemas con los datos.

Cuando por ejemplo desde un puesto añado un registro, ese puesto lo ve bien pero los demás no hasta que cierro el programa y vuelvo a entrar desde los que no lo ven, entonces ya aparece.

Entiendo que algo hago mal en cuanto al refresco / actualización de los datos.

Me podríais decir por costumbre en qué momento debo refrescar las tablas? Me refiero si es después de un post, en el evento activate de los form...

Para refrescar esos datos uso Refresh pero no me queda claro si lo que hace es actualizar los datos de la tabla o refrescar los datos del equipo donde se ejecuta.

He visto que es posible usar UpdateRecord pero no entiendo la diferencia y cual debería usar.

Gracias por vuestras opiniones

engranaje 26-02-2015 09:24:43

Estoy entendiendo que las instancias de tu aplicación no muestran los datos "actualizados" de la bd a no ser que los actualizados por ellas mismas?. Quiero decir, si tienes 3 instancias de tu aplicación habiertas y accedes a tu bd access desde el mismo acces y actualizas los datos de algún registro, ¿desde ninguna de las instancias de tu aplicación se veran los datos actualizados hasta reiniciarla?

De ser asi da la impresión de que tengas que cerrar y abrir los datasets o utilizar un requery periódicamente, no sé de que versión de delphi estamos hablando ni que comonentes estas utilizando. ¿Tus form se destruyen al cerrarse y se crean de nuevo cada vez que son utilizados? ¿y tus datamodules? ¿tienes los datasets y los datasource directamente en los forms pegados, en los datamodule, o los creas y vinculas dinamicamente en tiempo de ejecución?

Perdona que te conteste con preguntas pero a veces presupongo cosas y meto la pata. Lo cierto es que creo recordar que con ADO no quedaba mas remedio que volver a realizar de nuevo las consultas si querías asegurarte de que estabas mostrando los datos actualizados.

Delphitest 26-02-2015 20:39:08

Gracias por tu ayuda.

He seguido haciendo pruebas y veo algo que me llama la atención.

Lo que hago desde un puesto se ve en ese puesto pero no en los demás. Si en ese momento abro desde el servidor la base de datos de access y miro su contenido, resulta que los datos que ha metido el usuario del puesto no aparecen en el momento.

Si salgo del programa desde cualquier puesto y vuelvo a entrar, ya se actualizan los datos de access y lógicamente todos los usuarios los ven.

AgustinOrtu 26-02-2015 22:54:15

Access es mono usuario.

Te recomiendo que migres a otra bd que soporte multi usuario y concurrencia. Una buena opcion es Firebird


La franja horaria es GMT +2. Ahora son las 17:24:19.

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