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 transaction 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.
=head2 Changes in DBD::ODBC 1.30_1 May 12, 2011
[BUG FIXES]
* 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
context.
[CHANGE IN BEHAVIOR]
* 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.
[ENHANCEMENTS]
* 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.
[OTHER]
* 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
prototypes
Martin