Storing/extracting embedded db within .odb

Lionel Elie Mamane lionel at mamane.lu
Tue Jul 9 07:14:34 PDT 2013


On Tue, Jul 09, 2013 at 11:25:58AM +0100, Andrzej J. R. Hunt wrote:

> On further thought this seems best and is what I'll try to implement
> -- for versioning information and other db properties I'll use the
> same database/properties file which hsqldb based .odb files use,

The name of that file, its format, etc is decided by HSQLDB, not by
LibreOffice. It is a HSQLDB file, not a LibreOffice file. Unless you
have a compelling reason to give it the same name for
embedded-Firebird ODBs, I'd rather you didn't. Actually, I don't
completely understand what information you want to stick there
anyway... Could you please enlighten me? If it is
LibreOffice-specific, it sounds like it should be in the content.xml,
not any extra separate file.

> store the db itself as database/database.fdb. It shouldn't be too
> hard to have the same driver load an external fdb file and configure
> this using the properties file (some users are requesting this)

Indeed, it would be rather a pity to have this driver not be able to
access an external database. But *please* don't configure that with
any internal properties file, but configure it through the sdbc://
URL! This allows also to make a SDBC connection "disconnected" from
any .odb file, and this is how *all* our drivers do it.

> the main difficulty here would be having the gui to set this up, so
> initially I'll stick with a completely internal file.

For the UI, see the code pointers in
https://bugs.freedesktop.org/43369, and replace "PostgreSQL" by
"Firebird" :)

> I assume we'd want to store any icu related information in the same
> properties file to be able to detect whether we need to do any
> special stuff related to the indexes?

It seems far more appropriate to me to store that kind of stuff in
content.xml, probably as
 <office:body>
  <office:database>
    <db:data-source>
      <db:connection-data>

or

 <office:body>
  <office:database>
    <db:data-source>
      <db:driver-settings>

or something like that

-- 
Lionel


More information about the LibreOffice mailing list