Storing/extracting embedded db within .odb

Lionel Elie Mamane lionel at mamane.lu
Thu Jul 11 08:22:40 PDT 2013


On Thu, Jul 11, 2013 at 10:24:56AM +0100, Andrzej J. R. Hunt wrote:
> On Wed, 2013-07-10 at 10:25 +0200, Lionel Elie Mamane wrote:
>> On Wed, Jul 10, 2013 at 08:47:49AM +0100, Andrzej J. R. Hunt wrote:
>>> On Tue, 2013-07-09 at 15:59 +0200, Lionel Elie Mamane wrote:
>>>> On Mon, Jul 08, 2013 at 03:19:49PM +0100, Andrzej J. R. Hunt wrote:

>>>>> W.r.t. to the location of the extracted firebird db (...)

>>>> It is a temporary file. I'd stick it in $TMPDIR (or the platform
>>>> equivalent). Surely LibreOffice already has a platform
>>>> abstraction utility function to find where to put temporary
>>>> files.

>>> That was my original plan, however that would require writing the
>>> whole db back to the .odb every time there is a change.

>> Or every time the user presses the "save" button for the
>> odb... OO.org moved away from requiring "save" for embedded
>> database in the past, but frankly to me it seems to bring more
>> problems than it is worth.

> Makes sense. I still need to figure out how to do this given I'm
> dealing with the storage within the driver, and the driver currently
> doesn't get told when the .odb is being saved.

My first guess is: it registers as a listener for that event.

http://api.libreoffice.org/docs/common/ref/com/sun/star/document/XDocumentEventBroadcaster.html
http://api.libreoffice.org/docs/common/ref/com/sun/star/sdb/OfficeDatabaseDocument.html#XDocumentEventBroadcaster

If that cannot work for some reason, then stick embedded-specific code
in the code path of "save odb file".

-- 
Lionel


More information about the LibreOffice mailing list