develooper Front page | perl.dbi.announce | Postings from December 2010

New official DBD::ODBC 1.27 release

From:
Martin J. Evans
Date:
December 29, 2010 05:36
Subject:
New official DBD::ODBC 1.27 release
Message ID:
4D1B25DB.1090406@easysoft.com
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





nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About