I have now tried DBI 1.35 and DBD::ODBC 1.06 and they were OK so this would indicate a problem in DBI 1.35?
[EMAIL PROTECTED] DBD-ODBC-1.06]# perl -e 'use DBD::ODBC; print $DBD::ODBC::VERSION;' [EMAIL PROTECTED] DBD-ODBC-1.06]# perl -e 'use DBI;print $DBI::VERSION;' [EMAIL PROTECTED] DBD-ODBC-1.06]# perl x.pl DBI 1.35-nothread dispatch trace level set to 2 Note: perl is running without the recommended perl -w option -> DBI->install_driver(ODBC) for linux perl=5.008 pid=22473 ruid=0 euid=0 install_driver: DBD::ODBC version 1.06 loaded from /usr/local/lib/perl5/site_perl/5.8.0/i686-linux/DBD/ODBC.pm <- install_driver= DBI::dr=HASH(0x81e6a78) -> data_sources for DBD::ODBC::dr (DBI::dr=HASH(0x81e6a78)~0x823a300) <- data_sources= ( 'DBI:ODBC:sampleisamloopback' 'DBI:ODBC:vaio' 'DBI:ODBC:external' 'DBI:ODBC:web' 'DBI:ODBC:austri' 'DBI:ODBC:mcs' 'DBI:ODBC:test_oob' 'DBI:ODBC:devmaster_demo' 'DBI:ODBC:2003' 'DBI:ODBC:lb' 'DBI:ODBC:gambantein_isam' 'DBI:ODBC:mimir' 'DBI:ODBC:company' 'DBI:ODBC:msaccess' 'DBI:ODBC:test' 'DBI:ODBC:myodbc' 'DBI:ODBC:bugzilla' 'DBI:ODBC:rbugs' 'DBI:ODBC:SYBASE' 'DBI:ODBC:EASYSOFT_ISAM' 'DBI:ODBC:SAMPLE_ISAM' 'DBI:ODBC:demo' 'DBI:ODBC:join' ) [23 items] at DBI.pm line 914 Data sources: DBI:ODBC:sampleisamloopback DBI:ODBC:vaio DBI:ODBC:external DBI:ODBC:web DBI:ODBC:austri DBI:ODBC:mcs DBI:ODBC:test_oob DBI:ODBC:devmaster_demo DBI:ODBC:2003 DBI:ODBC:lb DBI:ODBC:gambantein_isam DBI:ODBC:mimir DBI:ODBC:company DBI:ODBC:msaccess DBI:ODBC:test DBI:ODBC:myodbc DBI:ODBC:bugzilla DBI:ODBC:rbugs DBI:ODBC:SYBASE DBI:ODBC:EASYSOFT_ISAM DBI:ODBC:SAMPLE_ISAM DBI:ODBC:demo DBI:ODBC:join -- DBI::END -> disconnect_all for DBD::ODBC::dr (DBI::dr=HASH(0x81e6a78)~0x823a300) <- disconnect_all= '' at DBI.pm line 642 -> DESTROY for DBD::ODBC::dr (DBI::dr=HASH(0x823a300)~INNER) <- DESTROY= (not implemented) during global destruction Martin -- Martin J. Evans Easysoft Ltd, UK Development On 12-Nov-2003 Tim Bunce wrote: > On Wed, Nov 12, 2003 at 09:28:54AM -0000, Martin J. Evans wrote: >> Hi, >> >> I have: >> >> [EMAIL PROTECTED] DBD-ODBC-1.06]$ perl -MDBI -e 'DBI->installed_versions' >> Perl : 5.008 >> OS : linux >> DBI : 1.38 >> DBD::mysql : 2.9002 >> DBD::Sponge : 11.09 >> DBD::Proxy : 0.2004 >> DBD::ODBC : 1.05 >> DBD::Multiplex : 0.9 >> DBD::ExampleP : 11.10 >> >> >> I was upgrading DBD::ODBC to 1.06 when tests 02simple 13 onwards failed. >> I've >> reduced this to the following simple perl and output: >> >> use DBI; >> >> my @data_sources = DBI->data_sources('ODBC'); >> print "Data sources:\n\t", join("\n\t",@data_sources),"\n\n"; >> >> [EMAIL PROTECTED] DBD-ODBC-1.06]$ perl x.pl >> Usage: DBD::ODBC::dr::data_sources(drh, attr = NULL) at >> /usr/local/lib/perl5/site_perl/5.8.0/i686-linux/DBI.pm line 964. > > sub data_sources { > my ($class, $driver, @other) = @_; > my $drh = $class->install_driver($driver); > my @ds = $drh->data_sources(@other); > return @ds; > } > > So $class would be "DBI", $driver would be "ODBC" and @other would be empty. > So then data_sources should be called with only the $drh as a parameter > and that shouldn't cause an error. > > Could you post a level 2 trace so we can see what's going on? > >> perldoc DBI appears to say: >> @data_sources = DBI->data_sources($driver_name, \%attr, $dbh); >> under SYNOPSIS and: >> @ary = DBI->data_sources($driver); >> @ary = DBI->data_sources($driver, \%attr); >> under "data_sources" >> >> The above code works fine with DBI 1.13 and DBD::ODBC 0.28. > > It would be more helpful if you could narrow it down to one changed > module instead of two. Also note that although the code that's failing > is 'in' the driver, it's actually supplied by the DBI that's installed > at the time the driver is compiled and installed. > > Tim.