The Perl programming language

New 1.30_1 development release of DBD::ODBC

I've just uploaded DBD::ODBC 1.30_1 to CPAN.

If you use Windows or a Unicode build of DBD::ODBC on non-Windows platforms you should really test this release as it contains a change in behaviour for Unicode. This release also contains a small but perhaps significant change to the silent rolling back of a transactions when disconnect was called when AutoCommit was disabled. The complete changes since 1.29 are below. Again, many thanks to all the people RTing issues and providing feedback/testing.

More things that don't work with MS Native Client driver

I'm mostly blogging this as a reminder that I've received even more code using Perl and DBD::ODBC via the MS native client driver (not the MS SQL Server ODBC driver which works) which fails in strange ways. This code came to me via Rafael Kitover (@Caelum) and was a cut down demonstration of something dbic does/did? The first example is:

Facebook authentication with Perl - problem and resolution

Recently I've been required to look at writing a Facebook application. I don't use Facebook and have little interest in it myself. I looked around for a quick start with Perl and Facebook and came across Facebook Authentication with Perl and Facebook::Graph which looked interesting to follow and work through.

Putting aside the problems I had getting something set up on our system that allowed Facebook to post back to us I was left with the error:

New 1.29 full release of DBD::ODBC

Changes in DBD::ODBC 1.29 March 8, 2011

An official release of the 1.28 development releases.


  • 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.

Imminent release of DBD::ODBC 1.29

I'm about to release DBD::ODBC 1.29 after 4 development releases. Unfortunately, (as is often the case) I've found a bug just after the last development release related to batching of SQL statements and odbc_more_results. I'm fairly confident in it but if you use DBD::ODBC I'd love you to test it before I release it as it may be a while before I can release a new version.

You can find it here

Support for DBD::ODBC in DBIx::ProcedureCall

I came across someone asking about DBIx::ProcedureCall today on Perl Monks in Execute Oracle Stored procedure using DBIx::ProcedureCall. Years ago I remember finding DBIx::ProcedureCall when we were about to embark on writing an application that used stored procedures in DB2, Oracle and MySQL. DBIx::ProcedureCall did not support DB2 and MySQL then and I was not that happy about the way it creates symbols in Perl for database procedures/functions so I dismissed it and I wrote my own code. When I saw it again on Perl Monks I thought I'd take another look at it and was surprised the supported DBDs has not increased (it is still Oracle and Postgres).

DBD::Oracle and collections and a surprising speed up with InstantClient 11.2

Recently at $work I've been battling with some Perl code which retrieves data from Oracle via DBD::Oracle and a package function which returns a reference cursor. As I've mentioned before in this blog, the user has no select privilege on the database but can call package procedures/functions which return reference cursors and hence data from the database.

The query we have a problem with attempts to return multiple rows but one column is actually a list of primary keys from another table:

Beware execute_array with DBI/DBD::Oracle

I've been using DBD::Oracle for a fairly major application here for some time. Most of the code is actually in Oracle procedures but some remaining code is in Perl. Since we upgraded to Oracle 11Gr2 DBD::Oracle's 26exex_array.t test has always failed. I've not been too bothered about this since we don't use the execute_array method (implemented in DBI for most drivers but implemented in DBD::Oracle directly). However, testing has unearthed some worrying results.

DBD::ODBC 1.27 release

I've just released DBD::ODBC 1.27. 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. =head2 Changes in DBD::ODBC 1.27 December 29, 2010 Official release of the 1.26 development releases. =head2 Changes in DBD::ODBC 1.26_4 December 14, 2010
Syndicate content