[Libreoffice-qa] error checking in Base ODBC

Terrence Enger tenger at iseries-guru.com
Sat Oct 22 08:11:27 PDT 2011

Hmm.  Is my question really of no interest?  Or did I just time it 
badly with respect to the big conference?


On Fri, 2011-10-14 at 09:50 -0400, Terrence Enger wrote:
> I notice that at least some calls from Base to ODBC routines
> fail to check the return code, and I wonder what we should
> be doing.
> The particular situation that caught my interest arises this
> way ...
> (*) Base allocates and uses a connection handle.  
> (*) Upon closing the database, the code tries to free that
>     handle without calling SQLDisconnect.  SQLFreeHandle
>     returns -1 (SQL_ERROR), and sets sqlstate HY010
>     (function sequence error).
> (*) The statistics tab of ODBCConfig (part of unixODBC on
>     ubuntu-natty) shows that one connection is allocated.
> A call to SQLDisconnect before the call to SQLFreeHandle
> within OConnection::~OConnection() has worked once(!)
> without causing obvious difficulties.
> ( Aside to the kind people who were discussing automated
> testing with me last week:  I anticipate that leaked
> connection handles could cause difficulty in the context of
> automated tests, either from opening and closing many
> databases within one instance of soffice.bin, or from a
> driver manager less generous with handles than the one I am
> using here now.  See, folks, I have not been ignoring you
> just for the sake of ignoring you <grin />. )
> What else should the code generally do?  Should we continue
> to ignore errors?  (After all, I only noticed the particular
> situation because I am nasty person who is just looking for
> trouble <grin />.)  Should we be asserting adequately good
> return values?  We could collect diagnostic information, if
> we knew how to get the attention of somebody who cares.  Can
> we even think about throwing exceptions from a low-level
> wrapper around the ODBC routine?
> Thank you, all, for your patience with a troublemaker.
> Terry.

More information about the Libreoffice-qa mailing list