Good Evening David-
You will need BOTH DBI and DBIx::Procedure::DBName packages (where DBName is
name of DBVendor)
*assume* both of these packages are available from CPAN
so the 1st 3 lines of your perl script should look something like
#@/usr/local/bin/perl -w
use DBI:
use DBIx::Procedure::DBName
#then the code which works for Oracle....
my $dbh = DBI->connect( 'dbi:Oracle:',
qq{$db_username/$db_password@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=$db_host)(PORT=1521))(CONNECT_DATA=(SID=$db_SID)))}
)|| die "Database connection not made: $DBI::errstr";
print 'About to my $proc = DBIx::Procedure::Oracle->new($dbh, object_name =>
NameOfProcedure)';
#first set the object (change NameOfProcedure to actual NameOfProcedure)
my $proc = DBIx::Procedure::Oracle->new($dbh, object_name =>
'NameOfProcedure');
HTH/
Martin--
This email message and any files transmitted with it contain confidential
information intended only for the person(s) to whom this email message is
addressed. If you have received this email message in error, please notify
the sender immediately by telephone or email and destroy the original
message without making a copy. Thank you.
----- Original Message -----
From: "Wood, David" <[EMAIL PROTECTED]>
To: "Tim Bunce" <[EMAIL PROTECTED]>
Cc: <dbi-users@perl.org>; <[EMAIL PROTECTED]>
Sent: Wednesday, June 06, 2007 7:45 PM
Subject: RE: Incompatibility with DBI v1.56 / DBD::Sybase v1.08 /
DBIx::ContextualFetch v1.03
It took us a while to whittle this down into a small test case; however,
the fruits of labour seem to have paid off:
% perl -MDBI -e 'my $dbh =
DBI->connect("dbi:Sybase:server=MYSERVER","janedoe","janepass"); my
$arr_ref = $dbh->selectall_arrayref("execute sp_who"); print
@{$arr_ref->[0]},"\n";
Can't locate object method "DELETE" via package "DBI::st" at -e line 1.
%
The problem only seems to occur executing stored procedures ... notice a
"select" is fine:
% perl -MDBI -e 'my $dbh =
DBI->connect("dbi:Sybase:server=MYSERVER","janedoe","janepass"); my
$arr_ref = $dbh->selectall_arrayref("select 1"); print
@{$arr_ref->[0]},"\n";
1
%
The error with this small test case is different than the original
problem report ... but I'm hoping it uncovers whatever the underlying
problem is. David
-----Original Message-----
From: Tim Bunce [mailto:[EMAIL PROTECTED]
Sent: Wednesday, May 30, 2007 6:00 AM
To: Wood, David
Cc: dbi-users@perl.org
Subject: Re: Incompatibility with DBI v1.56 / DBD::Sybase v1.08 /
DBIx::ContextualFetch v1.03
Thanks for the report David.
I believe clear_cache() is only called on an 'inner' handle, which is
not tied. So I can't see why you'd get this error. (Or why the error
would say "Undefined subroutine" and not "Can't find method".)
To be able to look into this I'll need a very small test case that uses
as
few modules as possible. Ideally just DBI + DBD::Sybase +
DBIx::ContextualFetch.
Tim.
On Tue, May 29, 2007 at 10:45:37PM -0400, Wood, David wrote:
Hello,
We're running Perl v5.8.6 on Linux, Solaris Sparc, and Solaris x86.
We're using the latest DBI/DBD related modules:
o DBI v1.56
o DBD::Sybase v1.08
o DBIx::ContextualFetch v1.03
o Class::DBI v3.0.16
o Class::DBI::Sybase v0.5
o Ima::DBI v0.34
o etc
We recently upgraded DBD::Sybase from v1.07 to v1.08. The upgrade
resulted in the following problem on all platforms:
Undefined subroutine &DBIx::ContextualFetch::st::DELETE
I mentioned the problem to Michael Peppler; however, I don't think
he's
very familiar with DBIx::ContextualFetch and friends ... nor am I sure
this is a DBD::Sybase problem. I narrowed down the failure to this
piece of code (DBD-Sybase/dbdimp.c):
static void clear_cache(SV *sth, imp_sth_t *imp_sth)
{
dTHX;
/* Code from DBI::DBD */
/* Clear cached statement handle attributes, if necessary */
hv_delete((HV*)SvRV(sth), "NAME", 4, G_DISCARD);
hv_delete((HV*)SvRV(sth), "NULLABLE", 8, G_DISCARD);
hv_delete((HV*)SvRV(sth), "NUM_OF_FIELDS", 13, G_DISCARD);
hv_delete((HV*)SvRV(sth), "PRECISION", 9, G_DISCARD);
hv_delete((HV*)SvRV(sth), "SCALE", 5, G_DISCARD);
hv_delete((HV*)SvRV(sth), "TYPE", 4, G_DISCARD);
}
It seems Michael was implementing the changes described here:
http://www.mail-archive.com/[EMAIL PROTECTED]/msg04663.html
http://search.cpan.org/~timb/DBI-1.56/lib/DBI/DBD.pm#The_more_results_me
thod
I decided to e-mail dbi-users since the motivation for this change
came
from here. If this isn't the correct list ... hopefully someone can
direct me to a more appropriate list. David