Help with libdbi code

Colin Law clanlaw at gmail.com
Fri May 6 11:17:32 EDT 2016


I want to add some code to adjust the mysql sql_options if necessary,
in order to avoid bug #765872 [1].  I believe that this needs to be
called from gnc-backend-dbi.c in gnc_dbi_mysql_session_begin.  I need
to adjust the options after the mysql connection is made but before
the database is opened (since I need to do it before creating the
database in the case that the database does not already exist).  I
thought that I should do it before the call to dbi_conn_error_handler
at line 867 (maint branch) but cannot get it to work there.  If,
however, I put it after the line
result = dbi_conn_connect( be->conn );
then (provided the database already exists) it does work.

The failing code is

    result = dbi_conn_query( connection, "SELECT @@sql_mode");

If the database has not been opened then this returns NULL, but when I
then call dbi_conn_error this returns 0, which seems odd. The error
message is also empty.
If I run the SELECT query from the mysql command line before opening a
database then it works correctly.
Can anyone point out where I am going wrong?

Thanks

Colin

[1] https://bugzilla.gnome.org/show_bug.cgi?id=765872


More information about the gnucash-devel mailing list