![]() |
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..... :D |
Saludos! |
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 |
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 |
Cita:
// Saludos |
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..... :D |
Cita:
Cita:
|
Cita:
|
Cita:
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. |
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. :( :D Alguien sabe el por que o que esta causando que no se actualizen los datos? Nota: la tabla si sufre el cambio fisicamente he..... |
Mira estoy utilizando la etiqueta Delphi que creó precisamente Román, lo cual facilita la lectura del código
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. |
| La franja horaria es GMT +2. Ahora son las 12:10:48. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi