New 1.30_1 development release of DBD::ODBC

I've just uploaded DBD::ODBC 1.30_1 to CPAN.

If you use Windows or a Unicode build of DBD::ODBC on non-Windows platforms you should really test this release as it contains a change in behaviour for Unicode. This release also contains a small but perhaps significant change to the silent rolling back of a transactions when disconnect was called when AutoCommit was disabled. The complete changes since 1.29 are below. Again, many thanks to all the people RTing issues and providing feedback/testing.

Changes in DBD::ODBC 1.30_1 May 12, 2011


* Fixed some compiler warnings shown with -Wall including some
printf formats that had extra/missing arguments.

* Fixed t/70execute_array.t which was missing an "order by" in the
check_data sub which could cause failures for drivers not
returning the rows in the order they were inserted.

* Minor fix to Makefile.PL to avoid issuing variable used in void


* DBD::ODBC used to quietly rollback any transactions when
disconnect was called and AutoCommit was off. This can mask a
problem and leads to different behavior when disconnect is called
vs not calling disconnect (where you get a warning). This release
issues a warning if you call disconnect and a transaction is in
progress then it is rolled back.

* DBD::ODBC used to bind char/varchar/longvarchar columns as SQL_CHAR
meaning that in the unicode build of DBD::ODBC the bound column
data would be returned 8bit in whatever character-set (codepage) the
data was in, in the database. This was inconvenient and arguably a
mistake. Columns like nchar/nvarchar etc were bound as SQL_WCHAR and
returned as Unicode. This release changes the behaviour in a unicode
build of DBD::ODBC to bind all char columns as SQL_WCHAR. This may
inconvenience a few people who expected 8bit chars back, knew the
char set and decoded them (sorry). See odbc_old_unicode to return
to old behaviour.


* added -w option to Makefile.PL to add "-Wall" to CCFLAGS and
-fno-strict-aliasing so I can find warnings.

* Cope with broken ODBC drivers that describe a parameter as SQL
type 0.


* Add "disconnect and transactions" to pod describing what DBD::ODBC
does if you call disconnect with an outstanding transaction.

* Reorganised FAQ for bound parameter issues and added a lot on
bound parameter problems.

* Added new FAQ entry for Firebird

* Removed some unused variables and added some missing function



All the guys at mtsi are installing it now. Should see any issues soon hopefully.