Sorry for my last post. I managed to attach a much to big trace (several runs of the program).
Roger Perttu wrote:
> I've just started to experiment with DBD-ADO 2.5. I'm trying to figure
> out if it's a viable option to DBD-ODBC.
>
> I've got this snippet of code that doesn't seem to work with DBD-ADO:
>
> my $dbh = newDbh();
> my $sth = $dbh->prepare("{call testPrc(?)}");
> $sth->bind_param(1, 10, { TYPE => 4 });
> $sth->execute();
> print '$sth->{NUM_OF_FIELDS}: ', $sth->{NUM_OF_FIELDS}, "\n";
> if($sth->{NUM_OF_FIELDS})
> { $sth->fetchrow_hashref('NAME');
> }
>
>
> I just get lots of errors like this (trace is attached):
>
> OLE exception from "ADODB.Connection":
>
> Object or provider is not capable of performing requested operation.
>
> Win32::OLE(0.1502) error 0x800a0cb3
> in METHOD/PROPERTYGET "OpenSchema" at E:/Perl/site/lib/DBD/ADO.pm
> line 1402
> OLE exception from "ADODB.Connection":
>
> Object or provider is not capable of performing requested operation.
>
> Win32::OLE(0.1502) error 0x800a0cb3
> in METHOD/PROPERTYGET "OpenSchema" at E:/Perl/site/lib/DBD/ADO.pm
> line 1402
> OLE exception from "ADODB.Connection":
>
> Object or provider is not capable of performing requested operation.
>
> Win32::OLE(0.1502) error 0x800a0cb3
> in METHOD/PROPERTYGET "OpenSchema" at E:/Perl/site/lib/DBD/ADO.pm
> line 1402
> OLE exception from "ADODB.Connection":
>
> Object or provider is not capable of performing requested operation.
>
> Win32::OLE(0.1502) error 0x800a0cb3
> in METHOD/PROPERTYGET "OpenSchema" at E:/Perl/site/lib/DBD/ADO.pm
> line 1402
> OLE exception from "ADODB.Connection":
>
> It just goes on like that.
>
> Using SQL Profiler I can see that the code executes as it's supposed
> to on the server.
>
> Finally my questions:
>
> 1. Why do I get those errors?
>
> 2. Is DBD-ADO mature? Experiences?
>
> 3. Does DBD-ADO support input/output parameters for stored procedures?
> Multiple result sets?
>
> 4. I've noticed that DBD-ADO call sp_sproc_columns for my sp's, can
> that be avoided?
>
> Thanks,
>
> Roger P
DBI::st=HASH(0x29c16d0) trace level set to 4 in DBI 1.30-ithread
-> bind_param for DBD::ADO::st (DBI::st=HASH(0x29c31ec)~0x29c16d0 1
10 HASH(0x29be6e8)) thr#01B0F27C
1 <- FETCH= 1 ('NUM_OF_PARAMS' from cache) at ADO.pm line 1778 via
E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 54
->(default) : 2 3
<- bind_param= 1 at DbiTest4ADO.pl line 54 via
E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 69
-> execute for DBD::ADO::st (DBI::st=HASH(0x29c31ec)~0x29c16d0)
thr#01B0F27C
1 <- FETCH= '{call testPrc(?)}' ('Statement' from cache) at ADO.pm
line 1831 via E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 55
-> execute state handler
-> Not Supported flag: 0
-> Is the Parameter Object Supported? Yes
-> Parameter count: 1
-> Parameter 0: 10
-> Parameter 0: 10
1 -> STORE for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER
'ado_rowset' Win32::OLE=HASH(0x29bcca8)) thr#01B0F27C
1 <- STORE= Win32::OLE=HASH(0x29bcca8) at ADO.pm line 2005 via
E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 55
1 -> FETCH for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER
'RowCacheSize') thr#01B0F27C
.. FETCH DBI::st=HASH(0x29c16d0) 'RowCacheSize' = undef
1 <- FETCH= undef at ADO.pm line 2008 via
E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 55
1 -> FETCH for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER
'NUM_OF_FIELDS') thr#01B0F27C
.. FETCH DBI::st=HASH(0x29c16d0) 'NUM_OF_FIELDS' = 0
1 <- FETCH= 0 at ADO.pm line 2020 via
E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 55
1 -> STORE for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER 'Active' 1)
thr#01B0F27C
STORE DBI::st=HASH(0x29c16d0) 'Active' => 1
1 <- STORE= 1 at ADO.pm line 2021 via
E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 55
1 -> STORE for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER
'NUM_OF_FIELDS' 18) thr#01B0F27C
STORE DBI::st=HASH(0x29c16d0) 'NUM_OF_FIELDS' => 18
1 <- STORE= 1 at ADO.pm line 2022 via
E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 55
1 -> STORE for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER 'NAME'
ARRAY(0x29b9644)) thr#01B0F27C
1 <- STORE= [ 'name' 'xtype' 'status' 'xusertype' 'length' 'xprec'
'xscale' 'tdefault' 'domain' 'uid' 'reserved' 'usertype' 'variable'
'allownulls' 'type' 'printfmt' 'prec' 'scale' ] at ADO.pm line 2024 via
E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 55
-> _determine_type_support
-> _determine_type_support
-> _determine_type_support
-> _determine_type_support
-> _determine_type_support
-> _determine_type_support
-> _determine_type_support
-> _determine_type_support
-> _determine_type_support
-> _determine_type_support
-> _determine_type_support
-> _determine_type_support
-> _determine_type_support
-> _determine_type_support
-> _determine_type_support
-> _determine_type_support
-> _determine_type_support
-> _determine_type_support
1 -> STORE for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER 'TYPE'
ARRAY(0x29a6e78)) thr#01B0F27C
1 <- STORE= [ -9 -9 undef 0 0 undef 0 0 undef 5 5 undef 5 5 undef 0 0
undef 0 0 undef 4 4 undef 4 4 undef 5 5 undef 5 5 undef 5 5 undef 16 16
undef 16 16 undef 0 0 undef 12 12 undef 5 5 undef 0 0 undef ] at ADO.pm
line 2026 via E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 55
1 -> STORE for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER 'PRECISION'
ARRAY(0x29a8570)) thr#01B0F27C
1 <- STORE= [ 255 3 3 5 5 3 3 10 10 5 5 5 255 255 3 255 5 3 ] at
ADO.pm line 2028 via E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl
line 55
1 -> STORE for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER 'SCALE'
ARRAY(0x29b7594)) thr#01B0F27C
1 <- STORE= [ 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 ] at ADO.pm line 2030 via
E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 55
1 -> STORE for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER 'NULLABLE'
ARRAY(0x29a7088)) thr#01B0F27C
1 <- STORE= [ 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 ] at ADO.pm line
2033 via E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 55
1 -> STORE for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER 'ado_type'
ARRAY(0x29a6f14)) thr#01B0F27C
1 <- STORE= [ 202 17 17 2 2 17 17 3 3 2 2 2 11 11 17 200 2 17 ] at
ADO.pm line 2038 via E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl
line 55
1 -> STORE for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER
'CursorName' undef) thr#01B0F27C
1 <- STORE= undef at ADO.pm line 2049 via
E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 55
1 -> STORE for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER 'Statement'
'{call testPrc(?)}') thr#01B0F27C
1 <- STORE= '{call testPrc(?)}' at ADO.pm line 2050 via
E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 55
1 -> STORE for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER
'RowsInCache' 1) thr#01B0F27C
1 <- STORE= 1 at ADO.pm line 2051 via
E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 55
1 -> STORE for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER 'rows' -1)
thr#01B0F27C
STORE DBI::st=HASH(0x29c16d0) 'rows' => -1
1 <- STORE= '' at ADO.pm line 2052 via
E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 55
<- executed state handler
<- execute= -1 at DbiTest4ADO.pl line 55 via
E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 69
<- FETCH= 18 ('NUM_OF_FIELDS' from cache) at DbiTest4ADO.pl line 57
via E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 69
<- FETCH= 18 ('NUM_OF_FIELDS' from cache) at DbiTest4ADO.pl line 58
via E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 69
-> fetchrow_hashref in DBD::_::st for DBD::ADO::st
(DBI::st=HASH(0x29c31ec)~0x29c16d0 'NAME') thr#01B0F27C
1 -> fetch for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER) thr#01B0F27C
2 -> FETCH for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER 'Active')
thr#01B0F27C
.. FETCH DBI::st=HASH(0x29c16d0) 'Active' = 1
2 <- FETCH= 1 at ADO.pm line 2068 via
E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 58
2 -> FETCH for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER
'ChopBlanks') thr#01B0F27C
.. FETCH DBI::st=HASH(0x29c16d0) 'ChopBlanks' = ''
2 <- FETCH= '' at ADO.pm line 2100 via
E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 58
dbih_setup_fbav for 18 fields => 0x29a5b40
1 <- fetch= [ 'binary' 173 2 173 8000 0 0 0 0 1 0 3 0 1 45 undef 8000
undef ] row1 at DbiTest4ADO.pl line 58 via
E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 69
1 <- FETCH= [ 'name' 'xtype' 'status' 'xusertype' 'length' 'xprec'
'xscale' 'tdefault' 'domain' 'uid' 'reserved' 'usertype' 'variable'
'allownulls' 'type' 'printfmt' 'prec' 'scale' ] ('NAME' from cache) at
DbiTest4ADO.pl line 58 via
E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 69
<- fetchrow_hashref= HASH(0x29a5ccc)18keys row1 at DbiTest4ADO.pl
line 58 via E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 69
-> DESTROY for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER) thr#01B0F27C
<- destroy statement handler
-> STORE for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER
'ado_rowset' undef) thr#01B0F27C
<- STORE= undef at ADO.pm line 2196 via
E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 75
-> STORE for DBD::ADO::st (DBI::st=HASH(0x29c16d0)~INNER 'Active' 0)
thr#01B0F27C
STORE DBI::st=HASH(0x29c16d0) 'Active' => 0
<- STORE= 1 at ADO.pm line 2197 via
E:\Projekt\Helpdesk\Perl\UpgradeDB\DbiTest4ADO.pl line 75
-> destroy statement handler
<- DESTROY= undef at DbiTest4ADO.pl line 75
smime.p7s
Description: S/MIME Cryptographic Signature
