I've just released DBD::ODBC 1.30_6 to CPAN. This is the culmination of 3 months of changes through 1.30_1 to 1.30_6 and also contains a few changes in behaviour (you are warned). It is unlikely that I will get much chance to do anything with DBD::ODBC for the next few months so I really need feedback before this becomes 1.31. Here is a list of changes since 1.29:
- Changes in DBD::ODBC 1.30_6 June 4, 2011
Changes in DBD::ODBC 1.30_5 May 24, 2011
Changes in DBD::ODBC 1.30_4 May 18, 2011
- When DBD::ODBC calls SQLExecDirect (the do method) it was not reporting warnings (SQL_SUCCESS_WITH_INFO) and not calling the error handler. Arguably, this is a change in behaviour but one I've struggled to resolve since in all other cases of warnings DBD::ODBC's error handler is called. However, DBI does not call its error handler for warnings so was DBD::ODBC wrong to call it's error in the first place for warnings? I decided it was better to leave this as it is but add checking of SQLExecDirect/do.
- The odbc_describe_parameter.t test could with with some versions of MS SQL Server ODBC Driver. It was down to when SQLDescribeParameter is disabled, the column_size passed to SQLBindParameter is 0.
- pod example of odbc_err_handler incorrectly used \$err_handler instead of \&err_handler.
Changes in DBD::ODBC 1.30_3 May 17, 2011
- [BUG FIXES]
- Fix issue described in http://www.nntp.perl.org/group/perl.dbi.dev/2011/05/msg6567.html. If you prepare a statement, disconnect and then try and execute the statement you get an error but it does not tell what is wrong.
- Added support for StrictlyTyped and DiscardString to the bind_col method.
- Minor changes to META.yml for mailing list, dynamic_config, homepage and keywords.
- The pod was missing = before the heads on a couple of sections in "Private DBD::ODBC Functions"
- TreatAsLob was incorrectly documented as BindAsLob.
Changes in DBD::ODBC 1.30_2 May 16, 2011
- [BUG FIXES]
- Made the new odbc_describe_parameters work and added test case.
Changes in DBD::ODBC 1.30_1 May 12, 2011
- Added the new odbc_describe_parameters attribute.
- [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.
- 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.
- 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