Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-03-2011
giocatore giocatore is offline
Miembro
 
Registrado: dic 2005
Posts: 31
Poder: 0
giocatore Va por buen camino
Actualización de tablas en red por código

buenas, espero me ayuden con mi pregunta talvéz la hayan respondido antes pero la verdad no encontré lo que buscaba en los foros.

tengo dos aplicaciones en red trabajando bajo Mysql además de ADO y conectores ODbc.

Y quisiera saber porque cuando trabajo sobre una tabla simultáneamente desde dos computadoras diferentes no se actualiza la tabla del otro.

es decir suponiendo que desde la aplicacion 1 se ingreso un nuevo registro en la tabla XXX para luego hice un post, y que "con la misma tabla abierta" en otra pc (en la aplicacion 2) pulso el botón refresh.

¿Porque en la tabla de la aplicacion 2 no aparece la modificación o en este caso el registro mencionado que se introdujo ==?

Cabe destacar que utilizo código delphi, no estoy usando querys.

puse adotable1.refresh para actualizar pero los datos que introdujo el otro usuario en la tabla no se aparecen.

La única forma con la que logré hacerlos funcionar es poniendo la propiedad active de la tabla en falso y luego volviéndola a activar. con eso si pude ver los cambios que realizo el otro usuario.
Responder Con Cita
  #2  
Antiguo 24-03-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Es correcto.
Una vez que has abierto una tabla (EQUIPO2), los datos se traen desde la Base de Datos (SERVIDOR) a tu aplicación local; Lo que no hace la aplicación es estar preguntando continuamente a la Base de Datos si alguien (EQUIPO1, EQUIPO3,...) ha añadido cosas nuevas para mostrartelas a tí.

Si así fuera, todos los equipos (EQUIPO1, EQUIPO2, EQUIPO3,...) deberían estar constantemente preguntando a la Base de Datos (SERVER) si alguien ha introducido datos nuevos para refrescarlos. Imagina el tráfico que eso podría generar si tuvieras 40 equipos introduciendo Datos a la vez y todos preguntando contra el servidor y refrescando todos los cambios de las otras 39 máquinas...

Lo logico es que al volver a preguntar al servidor por esos datos (al hacer el Active de nuevo o al ejecutar de nuevo la consulta) vuelvas a traer los datos de nuevo y veas los cambios que se han realizado desde otros equipos, como te está pasando.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 26-03-2011
giocatore giocatore is offline
Miembro
 
Registrado: dic 2005
Posts: 31
Poder: 0
giocatore Va por buen camino
Neftali, tu respuesta esta excelente me sacaste de una gran duda, por lo que entiendo no se puede actualizar de otra forma que no sea activando y desactivando la tabla pensé que existía alguna forma de actualizarlo con alguna propiedad del table como por ejemplo refresh, porque teóricamente refresh actualiza los datos de la tabla.

Una consulta más por favor, suponiendo que solo tengo 2 equipos en la red y desde la aplicación cliente hago que se active y desactive la tabla cada segundo, esto me crearía demasiado tráfico en la red??? y si es así se notaría demasiado este tráfico?? y como afectaría en mi aplicación.

Muchísimas Gracias!!!
Responder Con Cita
  #4  
Antiguo 26-03-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Has vuelto a preguntar lo mismo que te ha contestado ya Neftalí y has dicho que lo habías entendido. No, no es conveniente hacer eso, porque hoy serán 2 equipos, pero mañana pueden ser 3, y dentro de un año pueden poner 8 equipos y tú estás en otra empresa que te pagan mejor y en esa empresa dirán: "vaya chapuza que hizo el que trabajó aquí antes, esto no funciona, satura la red, va lentísimo, etc.".
Haz un simple cálculo, una consulta de refresco cada segundo equivale a 3600 a la hora, o sea, 86400 cada día, por 2 equipos= 172800 consultas. Normalmente el 99% de esas consultas serán inútiles porque no se modifican tantos datos constantemente que estén viendo al mismo tiempo en otro equipo. Así que tú mismo lo decides
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Actualizacion De Tablas ingmichel Internet 3 09-04-2009 14:23:26
control de actualizacion de tablas detybel Conexión con bases de datos 3 17-10-2005 19:00:44
Actualizacion en red de tablas (BD Access) hks Conexión con bases de datos 1 14-10-2005 09:10:09
Actualizacion de CDX en tablas DBF JorgeBec Conexión con bases de datos 0 18-02-2005 16:30:56


La franja horaria es GMT +2. Ahora son las 21:10:24.


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
Copyright 1996-2007 Club Delphi