Lo más básico es verificar que ambos forms tienen sesión privada de datos, de manera que lo que hagas en uno de ellos no afecta para nada lo que hagas en el otro.

El exe del programa debería estar en cada una de las máquinas, accediendo a los datos que tienen que estar en una sola máquina, la que hace de server.

Que abras las tablas en el load event con "use tutabla alias tualias" o en el entorno de datos no afectaría. Pero no creo que te haga falta usar again, aunque eso tampoco afecta la velocidad.

Una forma alternativa sería abrir las tablas, seleccionar los registros con un select, cerrar la tabla original, modificar el select y al grabar abrir la tabla, grabar y volver a cerrar.

Pero no creo que en un escenario de dos máquinas ese sea el problema.

Si usás vistas, deberías tenerlas en una DBC separada de la DBC de las tablas y poner en cada una de las máquinas la DBC de las vistas. Con eso te asegurás un encapsulamiento completo de los datos. Mejor que vistas es usar cursor adapters, entre otras cosas porque no necesitás una DBC donde alojarlos, quedan simplemente formando parte del código del programa.

No uses browse en los forms sino grids. Y como digo arriba, en las grids usa cursores, no la tabla directamente, y en cada cursor traé solamente la cantidad de registros que se ven en la grid, por ejemplo 10 o 20. Para ver otro lote de 10 o 20 registros, usá paginación. De esa forma el tránsito en la red se reduce al mínimo y por ende aumenta la velocidad.

No necesitás cambiar de máquinas ni migrar a SQL

Rafael Copquin


On 08/11/2016 14:37, Claudio Villarreal wrote:
Hola Colisteros
Tengo un problema con un form el cual les paso a detallar.
En un sistema de una clínica tengo instalado el sistemas en 2 PC (win XP y Seven). El sistema esta instalado en unas de la PC, la cual hace las veces de servidor. Las tablas (Nativas de FOX) las abro con AGAIN y ALIAS en cada vez que se abre el form. El problema es que cuando se abre el form de AMB de Turnos en una de la PC servidor esta funciona bien y el medico abre su agenda en la otra PC, la agenda se vuelve muy lenta en todo (cuando se abre el form, cuando actualiza las vistas, cuando sale de la atención del paciente y vuelve a la agenda, etc.). Pase el sistema a la PC del medico, la cual es mas nueva, y el problema sigue, pero al contrario, la agenda del medico funciona bien y el ABM de Turnos se pone lento.
Si paso el sistema a una tercera PC se ponen lentos los dos forms.
Alguna idea de como solucionarlo? Necesitare un server? O tendre que migrar todo a SQL ?
Desde ya muchas gracias

Claudio



Responder a