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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-05-2004
pgraciap pgraciap is offline
Miembro
 
Registrado: may 2003
Ubicación: Tampico, Tamaulipas [Mexico]
Posts: 39
Poder: 0
pgraciap Va por buen camino
Actualizar DBGrid en Pc's

Hola a todos(as)

Espero no equivocarme en la redaccion de mis dudas...

Estoy trabajando con tablas de paradox 7 en delphi 7.
El programa creado es para red, los Netdir y Privatedir estan bien configurados.

El problema es el siguiente.

Cuando ejecuto la captura de datos en la PC1 no veo el cambio en la PC2 bueno si lo veo pero hasta que cierro la tabla y la vuelvo abrir, pero mi pregunta es hay alguna forma de hacer esto sin la necesidad de abrir y cerrar la tabla hay una forma mas rapida?

Code.
Table1.Append;
Table1.FieldByName('Codigo').AsString := Codigo.Text;
Table1.FieldByName('Fecha).AsDateTime:= Date;
Table1.Post;

Este es el codigo de captura de datos.

El DbGrid esta direccionado al DataSet del Table1.

Espero haya descrito bien la duda y espero me puedan ayudar....

Saludos y Gracias.....
__________________
Have a nice day :)
Responder Con Cita
  #2  
Antiguo 20-05-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Código Delphi [-]
Table1.Refresh;

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 20-05-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Podrías intentar usar Table.FlushBuffers cuando hagas ediciones para asegurar que la tabla física se actualiza y usar Table.Refresh en un Timer para actualizar la tabla cada x tiempo.

// Saludos
Responder Con Cita
  #4  
Antiguo 20-05-2004
Avatar de luchin001
luchin001 luchin001 is offline
Miembro
 
Registrado: may 2003
Posts: 36
Poder: 0
luchin001 Va por buen camino
table.flushbuffer solo libera los buffers de memoria despues de grabar pero no tine ningun efecto en el comportamiento de la tabla, despues del post tendrias que agregar

Código Delphi:
Table1.Refresh;

como dice delphi.com.ar

Luis
Responder Con Cita
  #5  
Antiguo 21-05-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por luchin001
table.flushbuffer solo libera los buffers de memoria despues de grabar pero no tine ningun efecto en el comportamiento de la tabla, despues del post tendrias que agregar
Quizá no me di a entender pero lo que propongo yo no está peleado con lo que propone delphi.com.ar. Hablé yo de Table.Refresh al igual que de Table.FlushBuffers entendiendo que la estación que haga cambios use FlushBuffers y la estación que desee tener lo más actualizado de la tabla física use Refresh. Si los buffers no se han liberado en una estación, los cambios no se verá reflejados en otra por más Refresh que haga.

// Saludos
Responder Con Cita
  #6  
Antiguo 21-05-2004
pgraciap pgraciap is offline
Miembro
 
Registrado: may 2003
Ubicación: Tampico, Tamaulipas [Mexico]
Posts: 39
Poder: 0
pgraciap Va por buen camino
Amigos ya hice lo que me dicen pero no se actualiza la tabla del PC2 ya que adicione el dato en la PC1.

Estoy compilando en Windows XP Pro y el Prgrama lo estoy instalando en Windows 98 Se hay algun problema o hay algo que me falta?

Gracias por la ayuda que estoy recibiendo de ustedes.....
__________________
Have a nice day :)
Responder Con Cita
  #7  
Antiguo 21-05-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Empezado por luchin001
table.flushbuffer solo libera los buffers de memoria despues de grabar pero no tine ningun efecto en el comportamiento de la tabla...
Si para la otra PC, porque hará efectivo el cambio que puede estar en el Buffer en lugar de en el disco.

Cita:
Empezado por pgraciap
Amigos ya hice lo que me dicen pero no se actualiza la tabla del PC2 ya que adicione el dato en la PC1.
No pretenderás que solo modificando los datos desde la PC1 la PC2 reciba una notificación y se autorefresque... ¿No?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #8  
Antiguo 21-05-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por delphi.com.ar
No pretenderás que solo modificando los datos desde la PC1 la PC2 reciba una notificación y se autorefresque... ¿No?
Yo por eso digo que in Timer.
Responder Con Cita
  #9  
Antiguo 21-05-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Empezado por roman
Yo por eso digo que in Timer.
Me olvidé de esa parte ..

Tratándose de tablas Paradox, que podés aceder a sus archivos, podrías probar de utilizar ShellNotifications, pero dudo que eso funcione en unidades remotas.
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #10  
Antiguo 22-05-2004
pgraciap pgraciap is offline
Miembro
 
Registrado: may 2003
Ubicación: Tampico, Tamaulipas [Mexico]
Posts: 39
Poder: 0
pgraciap Va por buen camino
Lightbulb

Miren hice lo que me dicen al principio osea:

Citar:
Originalmente publicado por roman
Podrías intentar usar Table.FlushBuffers cuando hagas ediciones para asegurar que la tabla física se actualiza y usar Table.Refresh en un Timer para actualizar la tabla cada x tiempo.

Esto fue lo que hice en el codigo y no funciona con el PC remoto.

Code:
Table1.Append;
Table1.FieldByName('Codigo').AsString := Codigo.Text;
Table1.FieldByName('Fecha).AsDateTime:= Date;
Table1.Post;
Table1FlushBuffers;
Table1Refresh;

En el Timer (InTime)
Table1Refresh;

El timer tiene un tiempo de 20seg.

El PC remoto tiene un DBGrid dirigido a la misma tabla y tiene tambien lo escrito en el Timer, pero no se ve el cambio de las ultimas adiciones al menos que cierre la tabla y la vuelva a abrir.

Alguien sabe el por que o que esta causando que no se actualizen los datos?

Nota: la tabla si sufre el cambio fisicamente he.....
__________________
Have a nice day :)

Última edición por pgraciap fecha: 22-05-2004 a las 21:36:28.
Responder Con Cita
  #11  
Antiguo 22-05-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Mira estoy utilizando la etiqueta Delphi que creó precisamente Román, lo cual facilita la lectura del código
Código Delphi [-]
Table1.Append;
Table1.FieldByName('Codigo').AsString := Codigo.Text;
Table1.FieldByName('Fecha).AsDateTime:= Date;
Table1.Post;
Table1.FlushBuffers;
Table1.Refresh;//este te sobra

Creo que no has entendido bien lo que te han dicho mis compañeros.

Imagínate que la pc1 da un alta y hace el correspondiente flushBuffers, para descargar la memoria intermedia a disco, en este momento en Pc2 alguien tiene abierta una consulta en el formulario pongamos frConClientes, en este formulario es donde debieras tener un Timer activado que se dispare cada x segundos y te haga el refresco de la tabla para que este usuario vea el cambio hecho por PC1.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 13:15:39.


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