Thread: [issue?] SQLDriverConnect will clear existing connect attribute setting.
Hi,
I have a library to connect different database with ODBC. Found it’s not work on postgresql by setting autocommit off.
SQLSetConnectAttr(hDbc,
SQL_ATTR_AUTOCOMMIT,
(SQLPOINTER) SQL_AUTOCOMMIT_OFF,
0)
SQLDriverConnect(hDbc,
GetDesktopWindow(),
wszConnStr,
SQL_NTS,
NULL,
0,
NULL,
SQL_DRIVER_COMPLETE);
After checked the source, found that
PGAPI_Connect init the connection attribute/option in CC_conninfo_init.
So I have to set connect Attribute after Connect. Is this expected?
SQLDriverConnect -> SQLSetConnectAttr
It’s different with ODBC interface expected(allocate -> set -> connect).
Thanks
Best Regards
Ivan
Re: [issue?] SQLDriverConnect will clear existing connect attribute setting.
On 01/04/2015 08:11 AM, Ivan Zhang wrote: > I have a library to connect different database with ODBC. Found it's not work on postgresql by setting autocommit off. > > SQLSetConnectAttr(hDbc, > SQL_ATTR_AUTOCOMMIT, > (SQLPOINTER) SQL_AUTOCOMMIT_OFF, > 0) > > SQLDriverConnect(hDbc, > GetDesktopWindow(), > wszConnStr, > SQL_NTS, > NULL, > 0, > NULL, > SQL_DRIVER_COMPLETE); > > After checked the source, found that > > PGAPI_Connect init the connection attribute/option in CC_conninfo_init. > > So I have to set connect Attribute after Connect. Is this expected? > > SQLDriverConnect -> SQLSetConnectAttr > > It's different with ODBC interface expected(allocate -> set -> connect). It's a bug. It should be possible to set SQL_ATTR_AUTOCOMMIT before establishing connection. Fixed, thanks for the report! - Heikki