I've just uploaded DBD::ODBC 1.29 to CPAN. This is the official release of the 5 development 1.28 releases and contains a large number of changes. Many thanks to everyone who has reported issues, tested and helped with this release.
If you report an issue in DBD::ODBC 1.29 (or later when it happens) please now include a DBD::ODBC trace by setting DBI_TRACE=DBD=x.log and exporting it. This will include all DBD::ODBC tracing but omit DBI tracing. Here are the changes since 1.27: =head2 Changes in DBD::ODBC 1.29 March 8, 2011 * An official release of the 1.28 development releases. [NOTE] * The 1.28 development releases made a change which causes a generic error to be reported when an ODBC call fails but an error message is not retrieved from the ODBC Driver. It appears this has caught out a few ODBC drivers - notably freeTDS and Firebird. You now may see errors that were missed before e.g., DBIx::Class's tests for Firebird now errors test 21 "outer txn rolled back" (and others) because SQLRowCount returns an error after "ROLLBACK TO SAVEPOINT savepoint_0"; before this error was missed. =head2 Changes in DBD::ODBC 1.28_5 March 6, 2011 [BUG FIXES] * rt_59621.t had wrong skip count * Fixed missing SQL_MAX_TABLE_NAME_LEN definition from test. * Fixed problem with some drivers which batch "insert;select" where SQLMoreResults is not required and an extra describe is done. * Fixed "select 1" in 02simple.t for Firebird ODBC Driver. * disconnect call added to 70execute_array.t was in the wrong place. * In non-unicode mode we bind strings as SQL_CHAR but the driver may have described them as SQL_WCHAR and we were not doing ChopBlanks processing in that case. [REQUIREMENTS] * Now needs Test::Simple 0.90. [OTHER] * Added dml_counts.pl example * worked around a problem in freeTDS in the 20SqlServer.t test provided by Ralph Doncaster. * Changed test rt_62033.t to try and make it work with freeTDS - I failed. It now skips attempts to fetch when the insert fails. * Worked around problem in Firebird ODBC driver which reports timestamps have a display size of 24 characters but then can return 29 which could lead to data truncation errors. See http://tracker.firebirdsql.org/browse/ODBC-112 * Worked around problem in Firebird ODBC driver which reports VARCHARs have a maximum length of 32765 but in fact it is 4000. See http://tracker.firebirdsql.org/browse/ODBC-111 * Improvements in tracing to take account of DBI's neatsvpv lops 5 characters off maxsize on a string. =head2 Changes in DBD::ODBC 1.28_4 February 24, 2011 [BUG FIXES] * Fixed compilation problems with DBIf_TRACE_TXN * Added missing disconnect call to 70execute_array.t =head2 Changes in DBD::ODBC 1.28_3 February 22, 2011 [BUG FIXES] * Fixed MANIFEST in 1.28_2 which named 2 files incorrectly. * Fixed use of PREREQ_PRINT in versions of ExtUtils::MakeMaker which don't support it. * Fixed a check on LD_LIBRARY_PATH for unixODBC which could report you've not set LD_LIBRARY_PATH correctly. [ENHANCEMENTS] * Added Perl and ExtUtils::MakeMaker version output to build process. * Added support for DBI's new trace flags ENC, CON, TXN and DBD. From DBI 1.617 you should be able to use: DBI_TRACE=DBD to ONLY get DBD::ODBC tracing without DBI tracing ENC and CON DBI flags are synonymous with DBD::ODBC's odbcconnection and odbcunicode trace flags which you can still use for now. [OTHER] * From now on I'm changing the way the Changes file is written as per article at http://blog.urth.org/2011/01/changes-file-how-and-how-not-to.html * Some broken drivers (freeTDS in this case) can return SQL_ERROR from an ODBC API function and then SQLError does not return error details. In this case set a generic error saying an error occurred but we could not retrieve it. * Added FAQ entry on MS Access and text columns limited to 255 chrs. * Added 70execute_array.t test. =head2 Changes in DBD::ODBC 1.28_2 January 24, 2011 Added -x argument to Makefile.PL saying you prefer unixODBC over iODBC driver managers as a) we need to look for iODBC first on some platforms to detect iODBC and b) some platforms (Debian/Ubuntu) people have both binary packages installed but only unixODBC dev package. Patch from Rafael Kitover (Caelum) for better Cygwin handling. Minor change to data sources test to cope with someone having no data sources and using a DSN-less connection for testing. Fixed MARS test when a DSN-less connection used for testing - thanks to Rafael Kitover (Caelum) for spotting this. pod patch for "CPAN Testers Reporting" to point at cpan testers wiki from Rafael Kitover (Caelum). Fixed some broken links in the FAQ. Add a multiple active statement document link to random links and the FAQ entry. A call to SQLNumResultCols was not checked to test it succeeded. Not seen anyone run into this as yet. =head2 Changes in DBD::ODBC 1.28_1 December 29, 2010 Rewrote documentation on odbc_SQL_ROWSET_SIZE and added loads of notes so I don't have to go through a huge irc conversation with ribasushi again. Workaround bug in DBI (prior to 1.616) which mistakenly issues a FETCH on any attribute passed to the connect method and sometimes driver managers error on SQL_ROWSET_SIZE in SQLGetConnectAttr. ChopBlanks was not working on UCS-2 encoded data written into bound columns and was also sometimes reading off the end of the bound array. Minor FAQ changes: Added an additional way to read MS Access dbs from Unix Clarified versions for MARS_Connection updates to cancel_big_fetch.pl Updated TO_DO with more stuff to do Improved tracing output Tidied up some of the examples Martin -- Martin J. Evans Easysoft Limited http://www.easysoft.com