Make database store changes immediately?

Native (using the internal HSQLDB) LibreOffice databases sadly do not save changes immediately to disk, because only certain conditions seem to trigger a checkpoint. Is there a way to configure base that every change in the database is immediately written to disk without the need to save ?
In older 3.x OpenOffice versions I used additional checkpoints in my macros as a workaround, but for whatever reason this does not seem to work with LibreOffice 4.x anymore. When the checkpoint is called I get the following error:
BASIC runtime error.
An exception occurred
Type: com.sun.star.sdbc.SQLException
Message: File input/output errorerror java.io.IOException: S1000 invalid storage class: java.lang.NullPointerException opening file - file /home/test/testdatenbank.odb.data in statement [CHECKPOINT].

Hi @mark_orion,

If these macros used to work for you in a previous version of LibreOffice and don’t work in 4.0, this sounds like it could be a regression. It’s also possible that the syntax has changed.

If installing/running the latest release (4.0.1) doesn’t seem to fix this problem, and if you can reproduce the macro runtime error when you open a file that used to work under 3.x OpenOffice or LibreOffice, please file a bug and provide repro steps to trigger this runtime error. The QA team will be happy to help you track down this issue!

Please post a link to any bugs you file in a comment below using the format “fdo#123456”.

Thanks!

Hi, I got basically the same problem. I was not aware that a “save record” would not update the database file. So I happilly entered new data over a 2 day period until I hit some illegal database call. This seemed to have corrupted the database. I wasn’t too worried since I had the database file in Dropbox so I could go back in time. I thought. Only then I realised that the data base file was never updated as long as I was working within Libreoffice. Only closing libreoffice (Version: 4.2.3.3) would write out an updated version to disk.

So the only failproof way to avoid datalosses was:

  1. Open database file
  2. Add new record
  3. Close libreoffice
  4. (otional take a copy of the database file)
  5. Reopen database file

This way I can get Libreoffice to frequently update the datbase file on disk so that any corruption caused by entering data (not really sure what the bug is here) will not leave me with all the work lost but only the latest data record entered.

Surely a non-optimal way and not really acceptable for any database application. Is there any way to make sure that the database is written out frequently without having to close the whole of LibreOffice Base each time?