Re: DBD::ODBC make test fails - unixODBC/Easysoft/SQL Server 2008

2009-06-30 Thread Scott Stansbury

Yes.

Thank you again.

Best regards,
Scott...

On Jun 30, 2009, at 11:52 AM, Martin Evans wrote:


Scott Stansbury wrote:

Getting closer   :)

I'm trying to connect to a SQL Server 2008 instance from a CentOS5  
box:


unixODBC:   2.2.14
FreeTDS:0.82
Easysoft:   odbc-sqlserver-1.1.26-linux-x86 (this morning, thank you
again Martin and Wez...)

osql/isql work fine with both the FreeTDS and the Easysoft drivers.

Connecting to a SQL Server 2008 instance running on a Server 2008  
box.


DBB::ODBC make test fails as follows:

[r...@server1 DBD-ODBC-1.22-D2_Zne]# make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e"
"test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/01base.t .. ok
t/02simple.t  3/65 #
# Perl 5.8.8
# osname=linux, osvers=2.6.18-53.el5, archname=i386-linux-thread- 
multi

# Using DBI 1.609
# Using DBD::ODBC 1.22
# Using DBMS_NAME 'Microsoft SQL Server'
# Using DBMS_VER '10.00.1600'
# Using DRIVER_NAME 'libessqlsrv.so'
# Using DRIVER_VER '01.01.0026'
# odbc_has_unicode 0
t/02simple.t  35/65
#   Failed test 'data sources test'
#   at t/02simple.t line 259.
# '0'
# >
# '0'
# Looks like you failed 1 test of 65.
t/02simple.t  Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/65 subtests
t/03dbatt.t . 3/29 #
# N.B. Some drivers (postgres/cache) may return ODBC 2.0 column names
for the SQLTables result-set e.g. TABLE_QUALIFIER instead of  
TABLE_CAT

t/03dbatt.t . ok
t/05meth.t .. ok
t/07bind.t .. ok
t/08bind2.t . ok
t/09multi.t . ok
t/10handler.t ... ok
t/12blob.t .. ok
t/20SqlServer.t . ok
t/30Oracle.t  ok
t/40UnicodeRoundTrip.t .. ok
t/41Unicode.t ... ok
t/pod-coverage.t  ok
t/pod.t . ok
t/rt_38977.t  ok
t/rt_39841.t  ok
t/rt_39897.t  ok
t/rt_43384.t  ok
t/rt_46597.t  ok
t/rt_null_nvarchar.t  ok

Test Summary Report
---
t/02simple.t  (Wstat: 256 Tests: 65 Failed: 1)
  Failed test:  56
  Non-zero exit status: 1
Files=21, Tests=445, 33 wallclock secs ( 0.02 usr  0.26 sys +  0.27
cusr  2.17 csys =  2.72 CPU)
Result: FAIL
Failed 1/21 test programs. 1/445 subtests failed.
make: *** [test_dynamic] Error 255

As always, thanks!

Best regards,
Scott...




Scott,

Sorry for not answering sooner - somehow I missed your follow up.

The test that fails is looking for a data source i.e., it called
DBI->data_sources('ODBC') and it should be testing the returned  
array to

check there is more than 0 entries but in fact it does:

cmp_ok($#data_sources, '>', 0, "data sources test");

so if you only have one data source it fails. You can rectify the test
yourself by changing the > above to >=.

This does not indicate any problem with the driver your are using or
your setup.

Martin
--
Martin J. Evans
Easysoft Limited
http://www.easysoft.com




Re: DBD::ODBC make test fails - unixODBC/Easysoft/SQL Server 2008

2009-06-30 Thread Martin Evans
Scott Stansbury wrote:
> Getting closer   :)
> 
> I'm trying to connect to a SQL Server 2008 instance from a CentOS5 box:
> 
> unixODBC:   2.2.14
> FreeTDS:0.82
> Easysoft:   odbc-sqlserver-1.1.26-linux-x86 (this morning, thank you
> again Martin and Wez...)
> 
> osql/isql work fine with both the FreeTDS and the Easysoft drivers.
> 
> Connecting to a SQL Server 2008 instance running on a Server 2008 box.
> 
> DBB::ODBC make test fails as follows:
> 
> [r...@server1 DBD-ODBC-1.22-D2_Zne]# make test
> PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e"
> "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
> t/01base.t .. ok
> t/02simple.t  3/65 #
> # Perl 5.8.8
> # osname=linux, osvers=2.6.18-53.el5, archname=i386-linux-thread-multi
> # Using DBI 1.609
> # Using DBD::ODBC 1.22
> # Using DBMS_NAME 'Microsoft SQL Server'
> # Using DBMS_VER '10.00.1600'
> # Using DRIVER_NAME 'libessqlsrv.so'
> # Using DRIVER_VER '01.01.0026'
> # odbc_has_unicode 0
> t/02simple.t  35/65
> #   Failed test 'data sources test'
> #   at t/02simple.t line 259.
> # '0'
> # >
> # '0'
> # Looks like you failed 1 test of 65.
> t/02simple.t  Dubious, test returned 1 (wstat 256, 0x100)
> Failed 1/65 subtests
> t/03dbatt.t . 3/29 #
> # N.B. Some drivers (postgres/cache) may return ODBC 2.0 column names
> for the SQLTables result-set e.g. TABLE_QUALIFIER instead of TABLE_CAT
> t/03dbatt.t . ok
> t/05meth.t .. ok
> t/07bind.t .. ok
> t/08bind2.t . ok
> t/09multi.t . ok
> t/10handler.t ... ok
> t/12blob.t .. ok
> t/20SqlServer.t . ok
> t/30Oracle.t  ok
> t/40UnicodeRoundTrip.t .. ok
> t/41Unicode.t ... ok
> t/pod-coverage.t  ok
> t/pod.t . ok
> t/rt_38977.t  ok
> t/rt_39841.t  ok
> t/rt_39897.t  ok
> t/rt_43384.t  ok
> t/rt_46597.t  ok
> t/rt_null_nvarchar.t  ok
> 
> Test Summary Report
> ---
> t/02simple.t  (Wstat: 256 Tests: 65 Failed: 1)
>   Failed test:  56
>   Non-zero exit status: 1
> Files=21, Tests=445, 33 wallclock secs ( 0.02 usr  0.26 sys +  0.27
> cusr  2.17 csys =  2.72 CPU)
> Result: FAIL
> Failed 1/21 test programs. 1/445 subtests failed.
> make: *** [test_dynamic] Error 255
> 
> As always, thanks!
> 
> Best regards,
> Scott...
> 
> 

Scott,

Sorry for not answering sooner - somehow I missed your follow up.

The test that fails is looking for a data source i.e., it called
DBI->data_sources('ODBC') and it should be testing the returned array to
check there is more than 0 entries but in fact it does:

cmp_ok($#data_sources, '>', 0, "data sources test");

so if you only have one data source it fails. You can rectify the test
yourself by changing the > above to >=.

This does not indicate any problem with the driver your are using or
your setup.

Martin
-- 
Martin J. Evans
Easysoft Limited
http://www.easysoft.com


DBD::ODBC make test fails - unixODBC/Easysoft/SQL Server 2008

2009-06-26 Thread Scott Stansbury

Getting closer   :)

I'm trying to connect to a SQL Server 2008 instance from a CentOS5 box:

unixODBC:   2.2.14
FreeTDS:0.82
Easysoft:   odbc-sqlserver-1.1.26-linux-x86 (this morning, thank you  
again Martin and Wez...)


osql/isql work fine with both the FreeTDS and the Easysoft drivers.

Connecting to a SQL Server 2008 instance running on a Server 2008 box.

DBB::ODBC make test fails as follows:

[r...@server1 DBD-ODBC-1.22-D2_Zne]# make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e"  
"test_harness(0, 'blib/lib', 'blib/arch')" t/*.t

t/01base.t .. ok
t/02simple.t  3/65 #
# Perl 5.8.8
# osname=linux, osvers=2.6.18-53.el5, archname=i386-linux-thread-multi
# Using DBI 1.609
# Using DBD::ODBC 1.22
# Using DBMS_NAME 'Microsoft SQL Server'
# Using DBMS_VER '10.00.1600'
# Using DRIVER_NAME 'libessqlsrv.so'
# Using DRIVER_VER '01.01.0026'
# odbc_has_unicode 0
t/02simple.t  35/65
#   Failed test 'data sources test'
#   at t/02simple.t line 259.
# '0'
# >
# '0'
# Looks like you failed 1 test of 65.
t/02simple.t  Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/65 subtests
t/03dbatt.t . 3/29 #
# N.B. Some drivers (postgres/cache) may return ODBC 2.0 column names  
for the SQLTables result-set e.g. TABLE_QUALIFIER instead of TABLE_CAT

t/03dbatt.t . ok
t/05meth.t .. ok
t/07bind.t .. ok
t/08bind2.t . ok
t/09multi.t . ok
t/10handler.t ... ok
t/12blob.t .. ok
t/20SqlServer.t . ok
t/30Oracle.t  ok
t/40UnicodeRoundTrip.t .. ok
t/41Unicode.t ... ok
t/pod-coverage.t  ok
t/pod.t . ok
t/rt_38977.t  ok
t/rt_39841.t  ok
t/rt_39897.t  ok
t/rt_43384.t  ok
t/rt_46597.t  ok
t/rt_null_nvarchar.t  ok

Test Summary Report
---
t/02simple.t  (Wstat: 256 Tests: 65 Failed: 1)
  Failed test:  56
  Non-zero exit status: 1
Files=21, Tests=445, 33 wallclock secs ( 0.02 usr  0.26 sys +  0.27  
cusr  2.17 csys =  2.72 CPU)

Result: FAIL
Failed 1/21 test programs. 1/445 subtests failed.
make: *** [test_dynamic] Error 255

As always, thanks!

Best regards,
Scott...



Re: DBD::ODBC make test fails - unixODBC/Easysoft/SQL Server 2008

2009-06-25 Thread Martin Evans
Scott Stansbury wrote:
> I'm trying to connect to a SQL Server 2008 instance from a CentOS5 box:
> 
> unixODBC:   2.2.14
> FreeTDS:0.82
> Easysoft:   odbc-sqlserver-1.1.4-linux-x86 (trial for now)
> 
> osql/isql worked fine with both the FreeTDS and the Easysoft drivers.
> 
> Connecting to a SQL Server 2008 instance running on a Server 2008 box.
> 
> DBB::ODBC make test fails as follows:
> 
> [sc...@server1 DBD-ODBC-1.22-hGw3zr]$ make test
> PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e"
> "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
> t/01base.t .. ok
> t/02simple.t  1/65 #
> # Perl 5.8.8
> # osname=linux, osvers=2.6.18-53.el5, archname=i386-linux-thread-multi
> # Using DBI 1.609
> # Using DBD::ODBC 1.22
> # Using DBMS_NAME 'Microsoft SQL Server'
> # Using DBMS_VER '10.00.1600'
> # Using DRIVER_NAME 'libessqlsrv.so'
> # Using DRIVER_VER '01.01.0004'
> # odbc_has_unicode 0
> t/02simple.t  ok
> t/03dbatt.t . 3/29 #
> # N.B. Some drivers (postgres/cache) may return ODBC 2.0 column names
> for the SQLTables result-set e.g. TABLE_QUALIFIER instead of TABLE_CAT
> t/03dbatt.t . ok
> t/05meth.t .. ok
> t/07bind.t .. ok
> t/08bind2.t . ok
> t/09multi.t . ok
> t/10handler.t ... ok
> t/12blob.t .. ok
> t/20SqlServer.t . 3/65 # DBD::ODBC::db do failed:
> [unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Statement(s)
> could not be prepared. (SQL-42000)
> # [unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Must declare
> the scalar variable "@P1". (SQL-42000)
> # [unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Line 1: Length
> or precision specification 0 is invalid. (SQL-42000) at t/20SqlServer.t
> line 78.
> 
> #   Failed test 'create PERL_DBD_TABLE1 and insert test data'
> #   at t/20SqlServer.t line 82.
> # DBD::ODBC::db do failed: [unixODBC][Easysoft][SQL Server Driver
> 10.0][SQL Server]Statement(s) could not be prepared. (SQL-42000)
> # [unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Must declare
> the scalar variable "@P1". (SQL-42000)
> # [unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Line 1: Length
> or precision specification 0 is invalid. (SQL-42000) at t/20SqlServer.t
> line 78.
> 
> #   Failed test 'create PERL_DBD_TABLE1 and insert test data'
> #   at t/20SqlServer.t line 82.
> t/20SqlServer.t . 65/65 # Looks like you failed 2 tests of 65.
> t/20SqlServer.t . Dubious, test returned 2 (wstat 512, 0x200)
> Failed 2/65 subtests
> (less 6 skipped subtests: 57 okay)
> t/30Oracle.t  ok
> t/40UnicodeRoundTrip.t .. ok
> t/41Unicode.t ... ok
> t/pod-coverage.t  1/1 # Test::Pod::Coverage 1.04 required for
> testing POD coverage
> t/pod-coverage.t  ok
> t/pod.t . ok
> t/rt_38977.t  2/11 DBD::ODBC::st execute failed:
> [unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Statement(s)
> could not be prepared. (SQL-42000)
> [unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Must declare the
> scalar variable "@P1". (SQL-42000)
> [unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Line 1: Length
> or precision specification 0 is invalid. (SQL-42000) at t/rt_38977.t
> line 90.
> 
> #   Failed test 'execute insert'
> #   at t/rt_38977.t line 93.
> # Execute for insert into varchar(max) failed with DBD::ODBC::st execute
> failed: [unixODBC][Easysoft][SQL Server Driver 10.0][SQL
> Server]Statement(s) could not be prepared. (SQL-42000)
> # [unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Must declare
> the scalar variable "@P1". (SQL-42000)
> # [unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Line 1: Length
> or precision specification 0 is invalid. (SQL-42000) at t/rt_38977.t
> line 90.
> # Some SQL Server drivers such as the native client 09.00.1399 driver
> fail this test with a HY104, "Invalid precision error". You have driver
> libessqlsrv.so at version 01.01.0004. There is a free upgrade from
> Microsoft of the native client driver to 10.00.1600 which you will need
> if you intend to insert into varchar(max) columns.
> DBD::ODBC::st execute failed: [unixODBC][Easysoft][SQL Server Driver
> 10.0][SQL Server]Statement(s) could not be prepared. (SQL-42000)
> [unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Must declare the
> scalar variable "@P1". (SQL-42000)
> [unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Line 1: Length
> or precision specification 0 is invalid. (SQL-42000) at t/rt_38977.t
> line 127.
> DBD::ODBC::st execute failed: [unixODBC][Easysoft][SQL Server Driver
> 10.0][SQL Server]Statement(s) could not be prepared. (SQL-42000)
> [unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Must declare the
> scalar variable "@P1". (SQL-42000)
> [unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Line 1: Length
> or precision specification 0 is invalid. (SQL-42000) at t/rt_38977.t
> line 127

DBD::ODBC make test fails - unixODBC/Easysoft/SQL Server 2008

2009-06-25 Thread Scott Stansbury

I'm trying to connect to a SQL Server 2008 instance from a CentOS5 box:

unixODBC:   2.2.14
FreeTDS:0.82
Easysoft:   odbc-sqlserver-1.1.4-linux-x86 (trial for now)

osql/isql worked fine with both the FreeTDS and the Easysoft drivers.

Connecting to a SQL Server 2008 instance running on a Server 2008 box.

DBB::ODBC make test fails as follows:

[sc...@server1 DBD-ODBC-1.22-hGw3zr]$ make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e"  
"test_harness(0, 'blib/lib', 'blib/arch')" t/*.t

t/01base.t .. ok
t/02simple.t  1/65 #
# Perl 5.8.8
# osname=linux, osvers=2.6.18-53.el5, archname=i386-linux-thread-multi
# Using DBI 1.609
# Using DBD::ODBC 1.22
# Using DBMS_NAME 'Microsoft SQL Server'
# Using DBMS_VER '10.00.1600'
# Using DRIVER_NAME 'libessqlsrv.so'
# Using DRIVER_VER '01.01.0004'
# odbc_has_unicode 0
t/02simple.t  ok
t/03dbatt.t . 3/29 #
# N.B. Some drivers (postgres/cache) may return ODBC 2.0 column names  
for the SQLTables result-set e.g. TABLE_QUALIFIER instead of TABLE_CAT

t/03dbatt.t . ok
t/05meth.t .. ok
t/07bind.t .. ok
t/08bind2.t . ok
t/09multi.t . ok
t/10handler.t ... ok
t/12blob.t .. ok
t/20SqlServer.t . 3/65 # DBD::ODBC::db do failed: [unixODBC] 
[Easysoft][SQL Server Driver 10.0][SQL Server]Statement(s) could not  
be prepared. (SQL-42000)
# [unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Must  
declare the scalar variable "@P1". (SQL-42000)
# [unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Line 1:  
Length or precision specification 0 is invalid. (SQL-42000) at t/ 
20SqlServer.t line 78.


#   Failed test 'create PERL_DBD_TABLE1 and insert test data'
#   at t/20SqlServer.t line 82.
# DBD::ODBC::db do failed: [unixODBC][Easysoft][SQL Server Driver  
10.0][SQL Server]Statement(s) could not be prepared. (SQL-42000)
# [unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Must  
declare the scalar variable "@P1". (SQL-42000)
# [unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Line 1:  
Length or precision specification 0 is invalid. (SQL-42000) at t/ 
20SqlServer.t line 78.


#   Failed test 'create PERL_DBD_TABLE1 and insert test data'
#   at t/20SqlServer.t line 82.
t/20SqlServer.t . 65/65 # Looks like you failed 2 tests of 65.
t/20SqlServer.t . Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/65 subtests
(less 6 skipped subtests: 57 okay)
t/30Oracle.t  ok
t/40UnicodeRoundTrip.t .. ok
t/41Unicode.t ... ok
t/pod-coverage.t  1/1 # Test::Pod::Coverage 1.04 required for  
testing POD coverage

t/pod-coverage.t  ok
t/pod.t . ok
t/rt_38977.t  2/11 DBD::ODBC::st execute failed:  
[unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Statement(s)  
could not be prepared. (SQL-42000)
[unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Must declare  
the scalar variable "@P1". (SQL-42000)
[unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Line 1:  
Length or precision specification 0 is invalid. (SQL-42000) at t/ 
rt_38977.t line 90.


#   Failed test 'execute insert'
#   at t/rt_38977.t line 93.
# Execute for insert into varchar(max) failed with DBD::ODBC::st  
execute failed: [unixODBC][Easysoft][SQL Server Driver 10.0][SQL  
Server]Statement(s) could not be prepared. (SQL-42000)
# [unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Must  
declare the scalar variable "@P1". (SQL-42000)
# [unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Line 1:  
Length or precision specification 0 is invalid. (SQL-42000) at t/ 
rt_38977.t line 90.
# Some SQL Server drivers such as the native client 09.00.1399 driver  
fail this test with a HY104, "Invalid precision error". You have  
driver libessqlsrv.so at version 01.01.0004. There is a free upgrade  
from Microsoft of the native client driver to 10.00.1600 which you  
will need if you intend to insert into varchar(max) columns.
DBD::ODBC::st execute failed: [unixODBC][Easysoft][SQL Server Driver  
10.0][SQL Server]Statement(s) could not be prepared. (SQL-42000)
[unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Must declare  
the scalar variable "@P1". (SQL-42000)
[unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Line 1:  
Length or precision specification 0 is invalid. (SQL-42000) at t/ 
rt_38977.t line 127.
DBD::ODBC::st execute failed: [unixODBC][Easysoft][SQL Server Driver  
10.0][SQL Server]Statement(s) could not be prepared. (SQL-42000)
[unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Must declare  
the scalar variable "@P1". (SQL-42000)
[unixODBC][Easysoft][SQL Server Driver 10.0][SQL Server]Line 1:  
Length or precision specification 0 is invalid. (SQL-42000) at t/ 
rt_38977.t line 127.

# Looks like you planned 11 tests but ran 10.
# Looks like you failed 1 test of 10 run.
# Looks like your test exited with 13 just after 10.
t/rt_38977.t .