I've just uploaded DBD::ODBC 1.35 to CPAN.
This is the culmination of 7 development releases in the 1.34 chain and
is a significant release containing a lot of changes and enhancements.
As always I would like to thank everyone who has helped and especially
CPAN testers. The full list of changes since the last official release
is below. I particularly want to draw your attention to a native
execute_for_fetch method (which is much faster than the default DBI
method) and the new odbc_getdiagrec and odbc_getdiagfield methods.
However, be aware that some ODBC drivers (e.g., SQLite and there are
probably others) cannot do execute_for_fetch successfully. I've
contacted driver writers where I've found this but as yet I've not got
any resolution. If you are using a Windows ODBC driver or some
proprietary UNIX ODBC drivers (like the Easysoft ones - disclaimer, I
work for Easysoft) you are likely to have a lot more success with the
native execute_for_fetch as Windows applications seem to have been doing
this for longer so have ironed out the issues. Also note there are some
changes in behaviour in this release.
=head2 Changes in DBD::ODBC 1.35 March 6 2012
Full release of the 1.34 development releases
=head2 Changes in DBD::ODBC 1.34_7 March 2 2012
[BUG FIXES]
* Fixed more compiler errors highlighed by a smoker using MS Visual
C where some code come before a variable definition.
=head2 Changes in DBD::ODBC 1.34_6 February 27 2012
[BUG FIXES]
* Fixed some compiler warnings and a compile error highlighed by a
smoker using MS Visual C where some code come before a variable
definition.
=head2 Changes in DBD::ODBC 1.34_5 February 17 2012
[BUG FIXES]
* The 40UnicodeRoundTrip tests counts could be 1 off in some cases.
* Fix for t/03batt.t which could fail a test if the data source had
no table - Kenichi Ishigaki
* If a driver misbehaves during global destruction e.g. SQLFreeStmt
fails but no error is available DBD::ODBC issues an error saying
an error occurred but no error diagnostics could be found. This is
pointless and irritating during global destruction. This stems
from a change in 1.28. Thanks to Peter Rabbitson for reporting
and suggested fix.
[CHANGE IN BEHAVIOUR]
* Prior to this release if you called selectall_* methods with a
non-select statement DBD::ODBC would raise an error saying "no
select statement currently executing". See RT 68720. After
discussions on dbi-dev the concensus seems to be that issuing a
warning in this case is better so that is what I've done. As a
result t/rt_68720.t has been removed and
t/85_selectall_non_select.t has been added.
[DOCUMENTATION]
* odbc_getdiagfield was incorrectly named odbc_getdiagrec in the pod
* add DBI version required for StrictlyTyped and DiscardString to
pod
* Added new FAQ on why a transaction may be committed when
AutoCommit is turned off.
[OTHER]
* Make examples\odbc_diag.pl more tolerant of drivers which do not
handle diagnostic calls properly.
* Make t/40UnicodeRoundTrip.t work with SQLite - Kenichi Ishigaki
* Make t/odbc_describe_parameter.t work with SQLite - Kenichi
Ishigaki
* Add 80_odbc_diags.t based on the same file in examples
=head2 Changes in DBD::ODBC 1.34_4 February 5 2012
[BUG FIXES]
* When odbc_getdiag* methods were added they installed themselves
into DBI but did not set IMP_KEEP_ERR so calling them cleared
DBI's errors.
=head2 Changes in DBD::ODBC 1.34_3 February 3 2012
[BUG FIXES]
* Linking against unixODBC was working by accident on most UNIX
machines and depended on the order of the files in /usr/lib (or
wherever) and what files there were (e.g. an archive or a shared
object). Same applied to iODBC but it was more broken especially
on machines where libiodbc.so.N.N existed but there was no
libiodbc.so which could lead to no adding the shared object at
all. I doubt anyone really noticed this but I did eventually on
Ubuntu where libiodbc.so.N.N existed but libiodbc.so did not.
[ENHANCEMENTS]
* Added experimental odbc_getdiagrec and odbc_getdiagrec methods,
examples/odbc_diag.pl and examples/params_in_error.pl.
[DOCUMENTATION]
* New FAQ entries.
=head2 Changes in DBD::ODBC 1.34_2 January 25 2012
[BUG FIXES]
* Fixed rt73734 - debian moved where unixODBC libs are stored.
* Fixed memory leak of the parameter status array introduced in
previous release when execute_for_fetch used. When the statement
handle is destroyed the parameter status array was not freed.
[ENHANCEMENTS]
* Added environment variable PERL_DBD_ODBC_PREFER_UNIXODBC as a
synonym for -x from Rafael Kitover (Caelum).
[DOCUMENTATION]
* Add a deviation from DBI spec for type_info_all.
[OTHER]
* Added example execute_for_fetch.pl
=head2 Changes in DBD::ODBC 1.34_1 December 11 2011
[ENHANCEMENTS]
* Added experimental execute_for_fetch support and associated
attributes odbc_batch_size and odbc_disable_array_operations.
Martin