FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Problemas con Table.FlushBuffers
Hola amigos ,
Tengo una antigua aplicación realizada en Paradox que funciona locamente y hace poco me he visto obligado a su actualización, para la empresa donde funciona (ya se que no es la mejor base de datos...) Una de las cosas que he querido hacer, ha sido añadir después del evento AfterPost de una "TablaClientes", el procedimiento FlushBuffers para forzar la actualización de datos en disco y evitar problemas de perdida de información por cuelgues eléctricos, caidas de red, etc. El caso es que no funciona de ninguna forma, también he probado DbisaveChanges (TablaClientes.Handle) pero nada de nada. El archivo en disco de la tabla no sufre ningún cambio, excepto hasta el momento de cerrar la aplicación, donde entonces, si se vuelcan todos los cambios realizados. Este el código que he probado, tanto con DBiSavesChanges com sin el: procedure TDm_Datos.TablaClientesAfterPost(DataSet: TDataSet); begin TablaClientes.FlushBuffers; Dbisavechanges (TablaClientes.Handle); TablaClientes.Refresh; end; ¿No tengo ni idea a que puede deberse?!!, Gracias por vuestro tiempo. Silvestre. Última edición por geolife fecha: 14-01-2008 a las 20:39:02. |
#2
|
||||
|
||||
Lo único que necesitas es:
Lo que pienso que está ocurriendo es que tienes abierta la tabla o una consulta desde otro equipo y en ese equipo no ves el cambio hasta que cierrar y abres de nuevo la tabla. Solución, entre otras, pon un Timer y dispara un refresco de la tabla o la consulta cada x tiempo, ojo en el equipo que está viendo los datos no en el que los está cambiando. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
||||
|
||||
Marcos , muchas gracias por tu ayuda !.
He probado nuevamente, pero sigue sin funcionar, hay algo que se me escapa...Para el caso, he realizado una sencilla aplicación con una tabla paradox de contactos, unicamente de acceso local, donde se ve visualmente el estado del archivo en todo momento. Yo pensaba que al lanzar el procedimiento FlushBuffers después de un afterpost,(no se si estoy equivocado), esta recibía las actualizaciones que estuvieran pendientes, con lo cual el archivo físico de la tabla es modificado.
Dejo un enlace a un programa que realiza esta acción sobre una tabla de contactos, con un Timer que observa constantemente el archivo de la tabla para ver si ha sido modificada, lo único que he comprobado, es que el archivo de la tabla, solo recibe los cambios cuando finaliza la aplicación o bien cuando cerramos/abrimos la Tabla en cuestión. He intentado subir el programa de ejemplo a la zona FTP de Clubdelphi, pero me ha sido imposible. Asi que dejo otro link aquí, por si alguien desea descargar el ejemplo, viene con el código fuente y el ejecutable, no necesita instalación. http://www.fengshuinatural.com/files/FlushBuffers.zip Gracias por vuestro tiempo. Silvestre. Última edición por geolife fecha: 20-02-2008 a las 20:47:14. |
#4
|
||||
|
||||
Pues funciona de la manera que te he explicado.
1.- Quien graba los datos es el que manda el Flushbuffers; 2.-Quien tiene una consulta o tabla abierta no verá los cambios hasta que haga un refresh. Para eso te digo lo del Timer. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#5
|
||||
|
||||
Hola Marcos,
Llevas razón en todo el asunto, funciona perfectamente. El problema ha sido mio, solo me habia fijado en el dato del registro de fecha que windows gestiona, el cual no aparece inmediatamente actualizado después de la operación. Me he visto obligado, a salvar cambios con Flushbuffer desconectando 1 segundo mas tarde el ordenador de la red electrica, y efectivamente quedan a salvo, sin embargo, sin utilizar FlushBuffer, los cambios no se registran y si pierde todo el trabajo. Gracias! Silvestre. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
ayuda con ApplyUpdates ó FlushBuffers y paradox | JefeNet | Conexión con bases de datos | 7 | 10-09-2007 19:25:47 |
Flushbuffers en ADO | eLYaN | Conexión con bases de datos | 1 | 14-07-2006 12:38:59 |
Usar FlushBuffers??? | CarmaZone | Tablas planas | 2 | 19-07-2005 23:33:54 |
Problemas con table | VolaRe | Conexión con bases de datos | 5 | 18-04-2004 14:09:12 |
alter table / modify -> Problemas en tablas dbase | Jose_Pérez | SQL | 6 | 17-11-2003 09:24:34 |
|