DBD::ODBC 1.27 is winging its way to CPAN now. Version 1.27 combines all the 1.26 development releases and is a significant release as DBD::ODBC is now entirely ODBC 3.0 and requires an ODBC Driver Manager for any ODBC 2.0 drivers. Many thanks to everyone who has contributed. The changes are listed below.

Martin

=head2 Changes in DBD::ODBC  1.26_4 December 14, 2010

  Fixed bug highlighted by investigation into rt 62033 where the
  active flag was sometimes not set on the statement after
  SQLMoreResults indicates a result-set exists.

  Fix rt63550 reported by John Corcoran where if a do method call
  fails the SQL C<Statement>  is not available in an error handler as
  we never created a DBI statement in the first place. Added a note
  to "do" deviations pod.

  Minor fix to head at wrong level in the pod.

  Fix a possible snprintf buffer overflow in GetTypeInfo when
  the type is specified and it is negative.

=head2 Changes in DBD::ODBC  1.26_3 November 18, 2010

  Fixed rt 63108. The change to column binding in 1.24_2 was not
  complete and causes bound columns to be rebound on each execute
  wasting time and leaking memory. Found, diagnosed and proposed fix
  by Steve Bentley.

=head2 Changes in DBD::ODBC  1.26_2 November 9, 2010

  Fixed bug found by frew where an snprintf can overflow when binding
  a lot of parameters.

=head2 Changes in DBD::ODBC  1.26_1 October 24, 2010

  There are over 200 block changes in the source code for this release
  from the previous one (see below). If you are using DBD::ODBC in
  production you should not upgrade without testing this release first
  as it introduces a lot of internal changes. DBD::ODBC has now gone
  entirely ODBC 3 and relies on an ODBC Driver Manager to map calls
  to ODBC 2.0 drivers (why are you still using ODBC 2.0 drivers?).
  From now on DBD::ODBC needs to be linked with an ODBC Driver Manager
  and I recommend unixODBC on UNIX and the MS ODBC Driver Manager
  on Windows. There are really good reasons for this but mainly it
  is because an ODBC Driver Manager will map ODBC 2.0 calls to an
  ODBC 3.0 driver and vice versa and handle UNICODE transparently.

  Bumped Test::Simple requirement up to 0.90 so we can use done_testing
  and note.

  Bump Perl requirement to 5.8 as per DBI.

  Workaround a bug in mdbtools which fails to set the out connection
  string in a SQLDriverConnect call. This can lead to:

  Fixed panic: sv_setpvn called with negative strlen at
  blib/lib/DBD/ODBC.pm line 107.

  Added rt_61370.t for rt 61370.

  Removed last remaining sprintf calls and replaced with snprintf.

  Changed the point at which DBD::ODBC switches from VARCHAR to
  LONGVARCHAR or WVARCHAR to WLONGVARCHAR when SQLDesribeParam fails. It
  was 4000 and is now 2000 for unicode builds.  Works around a daft issue
  in the MS SQL Server driver which will not allow 'x' x 2001 converted to
  wide characters to be inserted into a varchar(8000).

  Minor change to Makefile.PL to print out found libs for iODBC and
  unixODBC.

  Added some FAQs for problems with iODBC and a recent bug in DBI.

  Added FAQ on my_snprintf problem.

  Fixed some pod errors in FAQ document.

  Fixed warning on 64 bit Strawberry Perl when compiling dbdimp.c for
  cast from ptr to UDWORD.

  Moved to_do items from Changes to TO_DO.

  Reformatted this file to save Jens work.

  Changed calls to SQLTransact (ODBC 2.0) to SQLEndTran (ODBC 3.0).
  There really shouldn't be any ODBC 2.0 drivers still around but even
  if there are, the ODBC driver manager should do the mapping for us.

  Changed calls to SQLGetConnectOption/SQLSetConnectOption to
  to SQLGetConnectAttr/SQLSetConnectAttr for ODBC 3.0.

  Changed calls to SQLColAttributes (ODBC 2.0) to SQLColAttribute
  (ODBC 3.0).

  Bumped requirement on DBI to 1.609 because that is the first version
  to contain a dbipport.h which defined my_snprintf - see
  https://rt.cpan.org/Public/Bug/Display.html?id=62346 and
  http://www.nntp.perl.org/group/perl.dbi.dev/2010/10/msg6335.html

  Various small changes to dbdimp.c which should have no effect other
  than to make it leaner:

    Removed all dTHR occurrences from dbdimp.c as it is a NOOP since 5.8
     and we need 5.8 at least.
    Removed dbd_param_err as it was not used
    Removed odbc_get_query_timeout as it was never compiled
    Removed eod field from statement as it was never used
    Removed a load of commented out code
    Replaced some SvPV calls with SvPV_nolen when we didn't used the
      length
    Removed some silly code from dbd_db_execdirect which attempted to
      return -3 - don't think it could ever get run.
    Minor tracing output tidy up
    Removed dbd_caution as it was no used
    Localised more variable declarations


Reply via email to