Changes for version 1.15

  • Fixed bug reported by Toni Salomaki where DBD::ODBC may call SQLNumResultCols after SQLMoreResults returns SQL_NO_DATA. It led to the error:
  • Describe failed during DBI::st=HASH(0x19c2048)->FETCH(NUM_OF_FIELDS,0)
  • when NUM_OF_FIELDS was referenced in the Perl script.
  • Updated odbc_exec_direct documentation to describe its requirement when creating temporary objects in SQL Server.
  • Added FAQ on SQL Server temporary tables.
  • Fixed bug in dbdimp.c which was using SQL_WCHAR without testing it was defined - thanks Jergen Dutch.
  • Fixed use of "our" in which fails on older Perls.
  • Minor changes to 02simple.t and 03dbatt.t to fix diagnostics output and help debug DBD which does not handle long data properly.
  • Further changes to Makefile.PL to avoid change in behavior of ExtUtils::MakeMaker wrt order of execution of PREREQ_PM and CONFIGURE. Now if DBI::DBD is not installed we just warn and exit 0 to avoid a cpan-testers failure.
  • =head2 Changes in DBD::ODBC 1.15_2 November 14, 2007
  • Fix bug in DBD::ODBC's private function data_sources which was returning data sources prefixed with "DBI:ODBC" instead of "dbi:ODBC".
  • If you don't have at least DBI 1.21 it is now a fatal error instead of just a warning.
  • DBI->connect changed so informational diagnostics like "Changed database context to 'master'" from SQL Server are available in errstr/state. These don't cause DBI->connect to die but you can test $h->err eq "" after connect and obtain the informational diagnostics from errstr/state if you want them.
  • Fixed problem in 41Unicode.t where utf8 was used before testing we had a recent enough Perl - thank you cpan testers.
  • Changed "our" back to "my" in Makefile.PL - thank you cpan testers.
  • Removed all calls to DBIh_EVENT2 in dbdimp.c as it is no longer used (see posts on dbi-dev).
  • Changed text output when a driver manager is not found to stop referring to iodbcsrc which is no longer included with DBD::ODBC.
  • Changed Makefile.PL to attempt to find unixODBC if -o or ODBCHOME not specified.
  • Updated META.yml based on new 1.2 spec.
  • Changed Makefile.PL so if an ODBC driver manager is not found then we issue warning and exit cleanly but not generating a Makefile. This should stop cpan-testers from flagging a fail because they haven't got an ODBC driver manager.
  • Changed Makefile.PL so it no longer "use"s DBI/DBI::DBD because this makes cpan-testers log a fail if DBI is not installed. Changed to put the DBI::DBD use in the CONFIGURE sub so PREREQ_PM will filter out machines where DBI is not installed.
  • Fix a possible typo, used once in 10handler.t.
  • =head2 Changes in DBD::ODBC 1.15_1 November 6, 2007
  • Minor changes to 20SqlServer.t test for SQL Server 2008 (Katmai). Timestamps now return an extra 4 digits of precision (all 0000) and the driver reported in dbcc messages has a '.' in the version which was not handled.
  • New FAQ entry and test code for "Datetime field overflow" problem in Oracle.
  • Changed all ODBC code to use new SQLLEN/SQLULEN types where Microsoft's headers indicate, principally so DBD::ODBC builds and works on win64. NOTE: you will need an ODBC Driver Manager on UNIX which knows SQLLEN/SQLULEN types. The unixODBC driver manager uses SQLLEN/SQLULEN in versions from at least 2.2.12. Thanks to Nelson Oliveira for finding, patching and testing this and then fixing problems with bound parameters on 64 bit Windows.
  • Added private_attribute_info method DBI introduced (see DBI docs) and test cases to 02simple.t.
  • Fairly major changes to dbd_describe in dbdimp.c to reduce ODBC calls by 1 SQLDescribeCol call per column when describing result sets. Instead of calculating the amount of memory required to hold every column name we work on the basis that (num_columns + 1) * SQL_MAX_COLUMN_NAME_LEN can hold all column names. However, to avoid using a large amount of memory unnecessarily if an ODBC driver supports massive column name lengths the maximum size per column is restricted to 256.
  • Changed to avoid using explicit use of DBIc_ERRXXX in favour of newish (ok, DBD::ODBC is a bit behind the times in this respect) DBIh_SET_ERR_CHAR. This involved a reworking or the error handling and although all test cases still pass I cannot guarantee it has no other effects - please let me know if you spot differences in error messages.
  • Fixed bug in 20SqlServer test for multiple results that was passing but for the wrong reason (namely, that the odbc_err_handler was being called when it should not have been).
  • Fixed bug in odbc_err_handler that prevented it from being reset so you don't have an error handler. Looks like the problem was in dbd_db_STORE_attrib where "if(valuesv == &PL_sv_undef)" was used to detect undef and I think it should be "if (!SvOK(valuesv))".
  • Improvements to odbc_err_handler documentation.
  • Added 10handler.t test cases.
  • More tests in 02simple.t to check NUM_OF_FIELDS and NAMES_uc.
  • Bit of a tidy up:
  • Removed some unused variable declarations from dbdimp.c.
  • Lots of changes to DBD::ODBC tracing, particularly in dbd_describe, and dbd_error2 and login6.
  • Removed a lot of tracing code in comments or #if 0 as it never gets built.
  • Changed dual tests on SQL_SUCCESS and SQL_SUCCESS_WITH_INFO to use SQL_SUCCEEDED.
  • =head2 Changes in DBD::ODBC 1.14 July 17, 2007
  • Fix bug reported where ping crashes after disconnect thanks to Steffen Goeldner.
  • Fix bug in dbd_bind_ph which leads to the error Can't change param 1 maxlen (51->50) after first bind in the 20SqlServer test. This is caused by svGROW in Perl 5.8.8 being changed to possibly grow by more than you asked (e.g. up to the next longword boundary).
  • Fix problem with binding undef as an output parameter. Reported by Stephen More with IBM's ODBC driver for iSeries.
  • Removed comment delimiters in comments in dbdimp.h leading to warnings.
  • Removed some unused variable declarations leading to warnings.
  • Removed PerlIO_flush calls as it is believed they are not required.
  • Add logging for whether SQLDescribeParam is supported.
  • Fixed use of unitialised variable in dbd_bind_ph where an undef is bound and tracing is enabled.
  • Fixed issue with TRACESTATUS change in 20SqlServer.t tests 28, 31, 32 and 33 leading to those tests failing when testing with SQL Server



ODBC Driver for DBI