Ver Mensaje Individual
  #11  
Antiguo 25-08-2003
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Reputación: 24
kinobi Va por buen camino
Hola,

Cita:
Posteado originalmente por ElSanto24 ... eso es hasta ahora lo que he conseguido, si es optima la forma de hacerlo .....no lo sé...
es que no existen muchas más formas. Todo pasa por enterarte de que ha ocurrido un cambio desde otra(s) transacción (por ejemplo con TIBEvents) y relanzar la consulta que alimenta al Dataset. Como hemos comentado, las transacciones deben tener un nivel de aislamiento que permita ver los cambios que aplican unas y otras.

Ahora bien, trabajar en un entorno cliente/servidor y que desde los clientes se tenga constancia (de forma automática) de lo que está sucediendo (en tiempo real) en el servidor significa asumir:

1. Un sistema complejo de actualización de los Datasets en el cliente. No sólo en los eventos de los Datasets, también en los eventos (eventos InterBase, IBEvents) que se lanzan desde el servidor. Una simple actualización de una tabla en el servidor, puede provocar que se active (tal vez innecesariamente) en cascada varias veces el mecanismo de refresco en los clientes si desde algún trigger se "tocan" otras tablas que lancen eventos.

2. Un tráfico de red creciente. Con pocos clientes puede no ser preocupante, pero tampoco es necesario irse a grandes instalaciones para que el sistema se haga inmanejable.

Otra cuestión es que los Datasets y los controles enlazados a éstos están pensandos para ese tipo de aplicaciones, heredado de los primeros tiempos del BDE, pensando en motores de datos navegacionales, aunque después se diera soporte para motores cliente/servidor.

Saludos.
Responder Con Cita