FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Refrescar pantalla
Buenas, tengo un programa del que ejecutan una copia del mismo varias maquinas a la vez; los datos van grabados en un gdb en el servidor.
La cuestion es, como puedo hacer para que una vez que el pc1 meta un dato, se refresque de modo que le aparezca por pantalla al pc2. No se si me explico, pero basicamente quiero que las modificaciones que hagan sobre la tabla, se visualicen automaticamente sin que tenga que poner un boton de actualizar en mi aplicacion. Un saludo. |
#2
|
|||
|
|||
Hola,
Una de las opciones que tienes a parte del botón, que sería lo más optimo, sería colocar un timer y configurarlo a un determinado tiempo para que actualice la pantalla o la refresque, pero esto creo que ocuparía demasiado en cuanto a procesos del aplicativo, pero si es un botón que el usuario presione y actualice sería mejor, ya que si el primer usuario inserta, modifica, etc, los cambios estarán en la BD y en cualquier momento que el usuario 2....n refresque estarán visibles los últimos datos. Saludos. PD: para refrescar, solo tendrías que actualizar el datasource. |
#3
|
||||
|
||||
Hola.
Imagino que utilizas Interbase/Firebird (por la extensión .gdb). Si buscas en el histórico de ese Foro, verás que una forma habitual de tratar este problema es mediante la utilización de eventos del servidor. Aquí puedes ver más información : http://www.firebird.com.mx/articulos..._interbase.php Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#4
|
|||
|
|||
Hola guillotmarc,
He leido el artículo y me parece perfecto, pero tengo una duda, esto sólo se puede utilizar con los componentes IBX o FIB, si se utiliza ClientDataSet, DataSetProvider, etc, cómo se puede implementar esta utilizad de eventos de la BD?? Gracias |
#5
|
||||
|
||||
Hola.
En prinicipio igual. Solo que tendrás que trabajar con dos grupos de componentes, por un lado los clientdataset + datasetprovider + sqlquery (por poner un ejemplo, si utilizas dbexpress) para acceder y modificar los datos, y por otro lado un tibdatabase + tibeventalerter para capturar los eventos del servidor. O sea, que puedes dejar tal como está la aplicación, añadiendo unos componentes específicos de interbase para capturar los eventos. Pueden ser los IBX, o los FibPlus, IBO, UIB, FreeIB, etc. ... El único inconveniente, es que cada estación mantendrá dos conexiones con el servidor, por un lado la conexión dbexpress para que la aplicación pueda funcionar como antes, y por otro lado una conexión IBX, .... para enlazar el componente que capture los eventos. NOTA : Ten en cuenta de que la utilización de eventos de Interbase te pueden sobrecargar mucho el tráfico de red, si la aplicación no está bien diseñada. Imaginate una red de 20 usuarios, que cada vez que uno modifica un cliente, los restantes 19 usuarios vuelven a lanzar la consulta para cargar todos los clientes. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#6
|
||||
|
||||
y con BDE y SQL Server ??
hay alguna forma de capturar las modificaciones pero en SQL Server ?? tengo el mismo problema que acrophet pero trabajo con SQL Server 2000 y uso los componentes de la BDE (TDataBase y TQuery) Hay algun componente o alguna forma de capturar los eventos (modificaciones a la BD) ??
Gracias de antemano |
|
|
|