DBI/SQL backend

Phil Longstaff plongstaff at rogers.com
Mon Jun 16 18:58:57 EDT 2008

Nathan Buchanan wrote:
> On Wed, Jun 11, 2008 at 8:58 PM, Phil Longstaff <plongstaff at rogers.com
> <mailto:plongstaff at rogers.com>> wrote:
>     I think the DBI/SQL backend is ready to try.  It is in the gda-dev2
>     branch.  The GDA backend has been disabled and a DBI backend is enabled.
>      It assumes that the include files are in /usr/include/dbi/dbi.h and the
>     driver files are in /usr/lib/dbd.  The only driver that the DBI backend
>     supports is sqlite3.  I am using libdbi-0.8.2.  I assume later versions
>     will work.  I don't know about earlier versions.  There is a compilation
>     check that the header file is present, but no version check.
>     No new URI types have been added.  If you try to open a file, it will
>     check if it is an sqlite3 file, and will load it with sqlite3.  If it
>     can't, it will revert to xml.  Save As will save a file as an sqlite3
>     file.  The "Connect to Database" menu entry is still enabled but will
>     (probably) fail.
>     I don't have a windows compilation environment, so I haven't tried it on
>     windows.
> So, I got it compiled (with the gmtime fix) and it seems to run ok up
> until I try to save as. When I choose save as and enter the desired file
> name I get an error stating "Can't parse the URL
> C:\soft\test_file\test.db." This happens with *all* names I enter,
> including *.gnc names, so something is slightly broken ;) I suspect it's
> that windows formatted name problem again, but can't spend time on it
> for the next few days.

The problem might also be that it can't find the sqlite3 dbd driver.  On
Linux, set environment var GNC_DBD_DIR to the library where the drivers
are (default /usr/lib/dbd).  If I set this to a directory which exists
but has no drivers, I get the same symptoms that you do.  I've added a
message to the trace log about the number of drivers found.  Warning
level if no drivers, info level if drivers found.  Try adding
--log=gnc.backend.dbi=info to the command line and see what the backend


More information about the gnucash-devel mailing list