DBD::ODBC with Perl 5.8.8

DBD::ODBC with Perl 5.8.8

am 02.03.2006 19:02:58 von jgillespie

Hello,

I'm having problems getting DBD::ODBC 1.13 to work with perl 5.8.8

I'm running CentOS 4.2 with the latest updates, it's a brand new install

With Perl 5.8.7, DBD::ODBC installes with out a problem, but with perl
5.8.8 I get the following from make test:

make test TEST_VERBOSE=3D1
PERL_DL_NONLAZY=3D1 /usr/local/perl5.8.8/bin/perl
"-MExtUtils::Command::MM" "-e" "test_harness(1, 'blib/lib',
'blib/arch')" t/*.t
t/01base.........1..5
ok 1 - require DBI;
ok 2 - import DBI
ok 3 - DBI->internal is DBI::dr
ok 4 - Install ODBC driver OK
ok 5 - Version is not empty
ok
t/02simple.......1..36
ok 1 - use DBI;
ok 2 - use ODBCTEST;
ok 3 - Set Auto commit
ok 4 - Auto commit retrieved to what was set
ok 5 - create test table
ok 6 - test table exists
ok 7 - insert test data
ok 8 - select test data
ok 9 - Set Long Read len
ok 10 - Set Long Truncok 1
ok 11 - Set Print Error
ok 12 - Select Long data
ok 13 - Set Long Truncok 0
ok 14 - Select Long Data failure
ok 15 - prepare select from table
ok 16 - Execute select
ok 17 - Col count matches correct col count
ok 18 - Set RaiseError 0
ok 19 - Set PrintError 0
ok 20 - Error reported on bad query
ok 21 - date check select
ok 22 - date check execute
ok 23 - date check rows
ok 24 - group by query prepare
ok 25 - group by query execute
ok 26 - group by query returned rows
ok 27 - data sources test
ok 28 - test ping method
ok 29 - Attrib odbc_ignore_named_placeholders 0 to start
ok 30 - Attrib odbc_ignore_named_placeholders set to 1
ok 31 - test connecting twice to the same database
ok 32 - database name is returned successfully
ok 33 - automatically finish when execute run again
ok 34 - INVALID DSN Test: [unixODBC][Driver Manager]Data source name not
found, and no default driver specified (SQL-IM002)(DBD:
db_login/SQLConnect err=3D-1)
#
ok 35 - Connection with DSN=3D
ok 36 - Connection with DSN=3D and uid and pwd are set
ok
t/03dbatt........1..24
ok 1 - use DBI;
ok 2 - use ODBCTEST;
ok 3 - Set Long Read Len
ok 4 - AutoCommit set on dbh
ok 5 - commitTest with AutoCommit
ok 6 - AutoCommit turned off
ok 7 - commitTest with AutoCommit off
ok 8 - Ensure autocommit back on
ok 9 - sth {NAME} returns ref to array isa ARRAY
ok 10 - Column test for table_info 0
ok 11 - Column test for table_info 1
ok 12 - Column test for table_info 2
ok 13 - Column test for table_info 3
ok 14 - Column test for table_info 4
ok 15 - must be some tables out there?
ok 16 - tables returnes array
ok 17 - column info returns more than one row for test table
ok 18 - primary key count
ok 19 - prepare update statement returns valid sth
ok 20 - update statement has 0 columns returned
ok 21 - update statement has 0 columns returned 2
ok 22 - Verify odbc_query_timeout set ok
ok 23 - verify dbh setting for query_timeout passed to sth
ok 24 - verify sth query_timeout can be overridden
ok
t/05meth.........1..8
ok 1 - use DBI;
ok 2 - delete prepared statement
ok 3 - Number of rows > 0
ok 4 - Number of rows from DBI matches sth
ok 5 - finished and rolled back
ok 6 - no error
ok 7 - ?
ok 8 - ??
ok
t/07bind.........1..11
ok 1 - use ODBCTEST;
ok 2 - Create tables
ok 3 - Table insert test
ok 4 - Ensure long readlen set correctly
ok 5 - Select tests
ok 6 - Insert with bind tests
ok 7 - select long test data
ok 8 - update long test data
ok 9 - select long test data again
ok 10 - ParamValues test integer
ok 11 - Paramvalues test string
ok
t/08bind2........1..5
ok 1 - use ODBCTEST;
ok 2 - use Data::Dumper;
ok 3 - insert \#1 various test data no dates, no long data
ok 4 - insert \#2 various test data no dates, with long data
ok 5 - insert \#3 various test data data with dates
ok
t/09multi........1..7
ok 1 - use strict;
ok 2 - use DBI;
ok 3 - use ODBCTEST;
ok 4 - count number of result sets
ok 5 - Multiple result sets with different column counts (less then
more)
ok 6 - Multiple result sets with different column counts (more then
less)
ok 7 - Multiple result sets with multiple cols, then second result set
with one col
ok
t/20SqlServer....1..37
ok 1 - use ODBCTEST;
ok 2 - use Data::Dumper;
ok 3 - errors on data comparison
ok 4 - temporary table handling
Can't change param 1 maxlen (51->50) after first bind at t/20SqlServer.t
line 180.
# Looks like you planned 37 tests but only ran 4.
# Looks like your test died just after 4.
dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 5-37
Failed 33/37 tests, 10.81% okay
t/30Oracle.......1..4
ok 1 - use ODBCTEST;
ok 2 - use Data::Dumper;
ok 3 # skip Oracle tests not supported using Microsoft SQL Server
ok 4 # skip Oracle tests not supported using Microsoft SQL Server
ok
2/4 skipped: Oracle tests not supported using Microsoft SQL
Server
Failed Test Stat Wstat Total Fail Failed List of Failed
------------------------------------------------------------ ------------
-------
t/20SqlServer.t 255 65280 37 66 178.38% 5-37
2 subtests skipped.
Failed 1/9 test scripts, 88.89% okay. 33/137 subtests failed, 75.91%
okay.
make: *** [test_dynamic] Error 255

RE: [dbi] DBD::ODBC with Perl 5.8.8

am 03.03.2006 16:03:08 von Martin.Evans

Jonathan,

The test that fails works fine for me.
What ODBC driver are you using?

Strangely, what DBD::ODBC is saying is that you bound an in/out parameter of
max size 50 then changed it to 51 but the code in 20SqlServer has a hard-wired
50 so somewhere a long the line the 50 that got into dbdimp.c got changed to 51.

A trace of the 20SqlServer test might help.

Martin
--
Martin J. Evans
Easysoft Ltd, UK
http://www.easysoft.com


On 02-Mar-2006 Jonathan Gillespie wrote:
> Hello,
>
> I'm having problems getting DBD::ODBC 1.13 to work with perl 5.8.8
>
> I'm running CentOS 4.2 with the latest updates, it's a brand new install
>
> With Perl 5.8.7, DBD::ODBC installes with out a problem, but with perl
> 5.8.8 I get the following from make test:
>
> make test TEST_VERBOSE=1
> PERL_DL_NONLAZY=1 /usr/local/perl5.8.8/bin/perl
> "-MExtUtils::Command::MM" "-e" "test_harness(1, 'blib/lib',
> 'blib/arch')" t/*.t
> t/01base.........1..5
> ok 1 - require DBI;
> ok 2 - import DBI
> ok 3 - DBI->internal is DBI::dr
> ok 4 - Install ODBC driver OK
> ok 5 - Version is not empty
> ok
> t/02simple.......1..36
> ok 1 - use DBI;
> ok 2 - use ODBCTEST;
> ok 3 - Set Auto commit
> ok 4 - Auto commit retrieved to what was set
> ok 5 - create test table
> ok 6 - test table exists
> ok 7 - insert test data
> ok 8 - select test data
> ok 9 - Set Long Read len
> ok 10 - Set Long Truncok 1
> ok 11 - Set Print Error
> ok 12 - Select Long data
> ok 13 - Set Long Truncok 0
> ok 14 - Select Long Data failure
> ok 15 - prepare select from table
> ok 16 - Execute select
> ok 17 - Col count matches correct col count
> ok 18 - Set RaiseError 0
> ok 19 - Set PrintError 0
> ok 20 - Error reported on bad query
> ok 21 - date check select
> ok 22 - date check execute
> ok 23 - date check rows
> ok 24 - group by query prepare
> ok 25 - group by query execute
> ok 26 - group by query returned rows
> ok 27 - data sources test
> ok 28 - test ping method
> ok 29 - Attrib odbc_ignore_named_placeholders 0 to start
> ok 30 - Attrib odbc_ignore_named_placeholders set to 1
> ok 31 - test connecting twice to the same database
> ok 32 - database name is returned successfully
> ok 33 - automatically finish when execute run again
> ok 34 - INVALID DSN Test: [unixODBC][Driver Manager]Data source name not
> found, and no default driver specified (SQL-IM002)(DBD:
> db_login/SQLConnect err=-1)
>#
> ok 35 - Connection with DSN=
> ok 36 - Connection with DSN= and uid and pwd are set
> ok
> t/03dbatt........1..24
> ok 1 - use DBI;
> ok 2 - use ODBCTEST;
> ok 3 - Set Long Read Len
> ok 4 - AutoCommit set on dbh
> ok 5 - commitTest with AutoCommit
> ok 6 - AutoCommit turned off
> ok 7 - commitTest with AutoCommit off
> ok 8 - Ensure autocommit back on
> ok 9 - sth {NAME} returns ref to array isa ARRAY
> ok 10 - Column test for table_info 0
> ok 11 - Column test for table_info 1
> ok 12 - Column test for table_info 2
> ok 13 - Column test for table_info 3
> ok 14 - Column test for table_info 4
> ok 15 - must be some tables out there?
> ok 16 - tables returnes array
> ok 17 - column info returns more than one row for test table
> ok 18 - primary key count
> ok 19 - prepare update statement returns valid sth
> ok 20 - update statement has 0 columns returned
> ok 21 - update statement has 0 columns returned 2
> ok 22 - Verify odbc_query_timeout set ok
> ok 23 - verify dbh setting for query_timeout passed to sth
> ok 24 - verify sth query_timeout can be overridden
> ok
> t/05meth.........1..8
> ok 1 - use DBI;
> ok 2 - delete prepared statement
> ok 3 - Number of rows > 0
> ok 4 - Number of rows from DBI matches sth
> ok 5 - finished and rolled back
> ok 6 - no error
> ok 7 - ?
> ok 8 - ??
> ok
> t/07bind.........1..11
> ok 1 - use ODBCTEST;
> ok 2 - Create tables
> ok 3 - Table insert test
> ok 4 - Ensure long readlen set correctly
> ok 5 - Select tests
> ok 6 - Insert with bind tests
> ok 7 - select long test data
> ok 8 - update long test data
> ok 9 - select long test data again
> ok 10 - ParamValues test integer
> ok 11 - Paramvalues test string
> ok
> t/08bind2........1..5
> ok 1 - use ODBCTEST;
> ok 2 - use Data::Dumper;
> ok 3 - insert \#1 various test data no dates, no long data
> ok 4 - insert \#2 various test data no dates, with long data
> ok 5 - insert \#3 various test data data with dates
> ok
> t/09multi........1..7
> ok 1 - use strict;
> ok 2 - use DBI;
> ok 3 - use ODBCTEST;
> ok 4 - count number of result sets
> ok 5 - Multiple result sets with different column counts (less then
> more)
> ok 6 - Multiple result sets with different column counts (more then
> less)
> ok 7 - Multiple result sets with multiple cols, then second result set
> with one col
> ok
> t/20SqlServer....1..37
> ok 1 - use ODBCTEST;
> ok 2 - use Data::Dumper;
> ok 3 - errors on data comparison
> ok 4 - temporary table handling
> Can't change param 1 maxlen (51->50) after first bind at t/20SqlServer.t
> line 180.
># Looks like you planned 37 tests but only ran 4.
># Looks like your test died just after 4.
> dubious
> Test returned status 255 (wstat 65280, 0xff00)
> DIED. FAILED tests 5-37
> Failed 33/37 tests, 10.81% okay
> t/30Oracle.......1..4
> ok 1 - use ODBCTEST;
> ok 2 - use Data::Dumper;
> ok 3 # skip Oracle tests not supported using Microsoft SQL Server
> ok 4 # skip Oracle tests not supported using Microsoft SQL Server
> ok
> 2/4 skipped: Oracle tests not supported using Microsoft SQL
> Server
> Failed Test Stat Wstat Total Fail Failed List of Failed
> ------------------------------------------------------------ ------------
> -------
> t/20SqlServer.t 255 65280 37 66 178.38% 5-37
> 2 subtests skipped.
> Failed 1/9 test scripts, 88.89% okay. 33/137 subtests failed, 75.91%
> okay.
> make: *** [test_dynamic] Error 255