Disappearing DBD-ODBC Modules from 5.8.8 & 5.10.0 Repo

Posted by StewartHolt on 2008-03-05 16:19
Forums: PPM | OS: Windows XP Pro

I wanted to upgrade to perl 5.10 from 5.8.7 and have found that a few modules which are very important to my work are missing: DBD-ODBC and Date-Calc. My reason to upgrade was that I wanted to use a new module introduced since 5.8.7, so I tried 5.8.8 and found that DBD-ODBC is missing there as well. It had been in 5.8.8 because I have another computer where ODBC and Calc were installed with 5.8.8 about 1 year ago.

I think something has changed which is causing ODBC to fail to build in 5.8.8 and 5.10.0. ODBC, while not the best solution for many DB, is used heavily by those of us who have to work on Microsoft Access databases. I have noticed a lot of complaints about this being missing as I have been searching for a solution.

I tried to install ODBC 1.14 (from zip file for 5.10) from the ppd file, but ppm gives an error that nothing can be found to supply DBI 1.21. The DBI version is something like 1.601 which is higher. (In my working 5.8.7 perl these versions are 1.13 and 1.54 with ODBC requiring 1.21 as in 1.14) I wonder if the new ppm is rejecting this when it should not. Do modules supply a minimum version (in this case > 1.14) that they support?

I think that the best way to get to the bottom of it is for someone at ActiveState to build DBD-ODBC on WIN32 and see what the problems are. This module is very valuable to Windows users and its supporter is not primarily a Windows user.

If anyone can help unravel this, I would really appreciate it.

martinjevans | Thu, 2008-03-06 01:04

I maintain DBD::ODBC. I am getting around 3 or 4 mails a day about this issue. See my post at


DBD::ODBC does have some minimum requirements but they have not changed in years. They are:

ExtUtils::MakeMaker 5.16 (for building it)
Test::More (for testing)
DBI: 1.21 (for building and running)

What has changed is how the requirements are handled. DBD::ODBC versions tested by cpan testers were failing when the tester did not have DBI already installed. After taking advice from the cpan-testers DBD::ODBC was changed to not generate a Makefile if DBI was not installed already. This avoids the failures.

DBD::ODBC 1.14 introduced UNICODE support and I believe this is what is stopping ActiveState from building it successfully. When I look at the ActiveState build logs it appears very old versions of the ODBC header files are being used which pre-date some UNICODE changes Microsoft made - namely changes to the API to use 64bit values for some ODBC API parameters - SQLLEN and SQLULEN. In the Perl 5.10 build logs DBD::ODBC did not build because DBI did not build because Storage did not build.

If anyone at ActiveState would like to contact me about this I will do all I can to help resolve this issue.


rjy7 | Tue, 2008-04-08 14:30

Instead of Date::Calc you can use Date::Pcalc. It's a direct translation.

ActiveState Staff
Thu, 2008-04-17 16:46

Recent maintenance on the PPM repositories has corrected a number of build problems.

liondron | Fri, 2010-10-22 11:45