Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2009-09

Actualizaciones en datos: ApplyUpdates y FlushBuffers

6 messages · 3 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Antonio Caballero Martínez

Hola a tod en s ...

Una pregunta: estoy implementando una aplicaci�n con BBDD locales (DBase o dbf para ser exactos). En Delphi ten�amos los m�todos ApplyUpdates & FlushBuffers (en los eventos AfterPost y AfterDelete) para realizar las actualizaciones de los datos que estaban en los buffers y en la cach�, con lo que se preven�a que se perdieran datos en las ca�das del sistema y cortes de luz, incongruencias con los �ndices, etc.

�Est�n estos m�todos implementados en Lazarus? He intentado buscar algo de informaci�n por la red, pero no he encontrado nada.

Gracias de antemano a tod en s ... Saludos.

Reply by email

JoshyFun
to Antonio Caballero Martínez

Hello Antonio,

Friday, September 11, 2009, 1:14:06 PM, you wrote:

ACM> Una pregunta: estoy implementando una aplicaci�n con BBDD locales ACM> (DBase o dbf para ser exactos). En Delphi ten�amos los m�todos ACM> ApplyUpdates & FlushBuffers (en los eventos AfterPost y AfterDelete) ACM> para realizar las actualizaciones de los datos que estaban en los ACM> buffers y en la cach�, con lo que se preven�a que se perdieran datos en ACM> las ca�das del sistema y cortes de luz, incongruencias con los �ndices, etc.

Si usas dbf con applyupdates deber�a ser suficiente (aunque DBF no es transaccional y no puede asegurar minimamente la congruencia de los datos ante cortes de luz). FlushBuffers entiendo que es una funci�n del sistema operativo, no de Delhi en si o de bases de datos.

ACM> �Est�n estos m�todos implementados en Lazarus? He intentado buscar ACM> algo de informaci�n por la red, pero no he encontrado nada.

ApplyUpdates si, al menos en los SQL que es con los que yo trabajo, el interfaz de DBF no lo conozco, hace como 20 a�os que no trabajo con un DBF para nada :(

Supongo que ser� Recordset.ApplyUpdates().

Por qu� usar DBF en vez de por ejemplo firebird embedded ?

Best regards, JoshyFun

Reply by email

Claudio Romero
to Antonio Caballero Martínez: Hola a tod en s ... Una pregunta: estoy implementando una aplicaci�n con BBDD locales…

Yo con Lazarus, uso el TDbf para exportar bases de Firebird.

Este un peque�a secuencia para grabar.
 Dbf1.Edit;
 Dbf1.FieldByName('nume_caj').asinteger:=NroToco;
 Dbf1.FieldByName('fec_caja').AsDateTime:=fecha;
 Dbf1.Post;

Pero como dice JoshyFun es mejor usar firebird embedded. Y si necesitas cambiar a multiusuario, ya tienes todo hecho. Ademas el componente TDbf esta un poco estancado, los ultimos cambios datan del a�o 2007.

Saludos

Reply by email

Antonio Caballero Martínez
to JoshyFun: ACM> Una pregunta: estoy implementando una aplicaci�n con BBDD locales ACM> (DBase…

El 11/09/2009 13:50, JoshyFun escribi�:

Show quoted text 7 lines
Hello Antonio, Si usas dbf con applyupdates deber�a ser suficiente (aunque DBF no es transaccional y no puede asegurar minimamente la congruencia de los datos ante cortes de luz). FlushBuffers entiendo que es una funci�n del sistema operativo, no de Delhi en si o de bases de datos.

En Delphi est� implementado (ver el manual "La cara oculta de Delphi 4", de Marteens; cap�tulo n� 28, pgs n� 571 a 583). Hay bastante informaci�n acerca de esto ... Ya no entro si pertenece a Delphi, al sistema operativo, o al motor de bases de datos (BDE) ... Gracias por tu respuesta.

Show quoted text 6 lines
ApplyUpdates si, al menos en los SQL que es con los que yo trabajo, el interfaz de DBF no lo conozco, hace como 20 a�os que no trabajo con un DBF para nada :( Supongo que ser� Recordset.ApplyUpdates().

Ok, gracias, intentar� probar y comentar� posteriormente ...

Por qu� usar DBF en vez de por ejemplo firebird embedded ?

Por varias razones, que para m� son de peso (principalmente, por exigencias del destino al que va destinada la aplicaci�n, o del gui�n):
1) independizar la aplicaci�n de "cosas" externas, como servidores, dll's, etc.
2) es una aplicaci�n MONOPUESTO y MONOUSUARIO
3) busco casi un 100 % de portabilidad
4) aunque s� que Sql y dem�s es realmente potente y permite hacer cosas maravillosas; en el 99.99 % de los casos ning�n usuario final de la aplicaci�n va a terminar usandola en plan monopuesto y monousuario ...
5) no va a ser necesario hacer uso de red, ni es necesario compartir datos, ni nada ...

Pongamos en t�rminos generales, que para ir al otro lado de la ciudad (pongamos 15 Km), puedo desplazarme en un *Seat 600*, o hacer uso del transporte p�blico; y no necesito un /Ferrari Testarossa/ ...

Saludos a tod en s ...
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20090911/a8ca36de/attachment.html>

Reply by email

Antonio Caballero Martínez
to Claudio Romero: Yo con Lazarus, uso el TDbf para exportar bases de Firebird. Este un peque�a secuencia…

El 11/09/2009 14:12, Claudio Romero escribi�:

Show quoted text 13 lines
Yo con Lazarus, uso el TDbf para exportar bases de Firebird. Este un peque�a secuencia para grabar. Dbf1.Edit; Dbf1.FieldByName('nume_caj').asinteger:=NroToco; Dbf1.FieldByName('fec_caja').AsDateTime:=fecha; Dbf1.Post; Pero como dice JoshyFun es mejor usar firebird embedded. Y si necesitas cambiar a multiusuario, ya tienes todo hecho. Ademas el componente TDbf esta un poco estancado, los ultimos cambios datan del a�o 2007.

Primeramente, muchas gracias por tu respuesta.
S�, estar� estancado; pero me remito a lo que le he respondido a JoshyFun en el correo anterior ...
Aunque est� algo desfasado, cumple las expectativas que la aplicaci�n y el usuario necesitan ... Am�n de la velocidad, que antes no mencion� ...

Saludos

Idem, saludos a tod en s ...

Reply by email

JoshyFun
to Antonio Caballero Martínez: El 11/09/2009 13:50, JoshyFun escribi�: En Delphi est� implementado (ver el manual…

Hello Antonio,

you wrote
> Si usas dbf con applyupdates deber�a ser suficiente (aunque DBF no es > transaccional y no puede asegurar minimamente la congruencia de los > datos ante cortes de luz). FlushBuffers entiendo que es una funci�n > del sistema operativo, no de Delhi en si o de bases de datos.

ACM> En Delphi est� implementado (ver el manual "La cara oculta de ACM> Delphi 4", de Marteens; cap�tulo n� 28, pgs n� 571 a 583). Hay bastante ACM> informaci�n acerca de esto ... Ya no entro si pertenece a Delphi, al ACM> sistema operativo, o al motor de bases de datos (BDE) ...

He estado mirando y es cosa del BDE para tablas Paradox, en un principio a todas las dem�s el "FlushBuffers" no le afecta, aunque no he conseguido saber exactamente que hace DbiSaveChanges(HANDLE) :-? ya que no fuente de esa parte no est� incluida en Delphi.

Best regards, JoshyFun

Reply by email