DBI/SQL backend

Phil Longstaff plongstaff at rogers.com
Sun Jun 22 16:49:47 EDT 2008


David Reiser wrote:
> 
> On Jun 16, 2008, at 6:58 PM, Phil Longstaff wrote:
> 
>> 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
>> says.
>>
>> Phil
> 
> I still have the problem with r17242.
> Mac OS X 10.5.3, gcc 4.0.1, gnome is pieces of 2.18-2.22, libdbi 0.8.2
> 
> Early in the load sequence, I get:
> * 22:38:19  INFO <gnc.backend.dbi> [gnc_dbi_check_sqlite_file] exists,
> does not have SQLite format string -> not DBI
> 
> later when I try the Save As, logging reports:
> * 22:39:22  INFO <gnc.backend.dbi> [gnc_dbi_check_sqlite_file] doesn't
> exist (errno=2) -> DBI
> * 22:39:22  INFO <gnc.backend.dbi> [gnc_dbi_backend_new] 1 DBD drivers
> found
> * 22:39:22  CRIT <gnc.backend.dbi> [gnc_dbi_session_begin()] Unable to
> create sqlite3 dbi connection
> 
> Having GNC_DBD_DIR set or not does not affect the logging messages. I
> did configure with --with-dbi-dbd-dir=/sw/lib/dbd
> The sqlite3 I want to use (version 3.4.2) is in /sw/bin. 'which sqlite3'
> responds /sw/bin/sqlite3. /usr/bin/sqlite3 (version 3.4.0) does exist
> and is used by other software.
> 
> My libdbi drivers are tied to the fink-installed sqlite3 (/sw/bin/sqlite3).

What files are in /sw/lib/dbd?

Phil



More information about the gnucash-devel mailing list