Environment:
  RHEL 4
  perl-5.8.5-24.RHEL4
  perl-DBI-1.40-8
  perl-DBD-ODBC-1.13-1
  unixODBC-2.2.11-3.FC4.1
  iSeriesAccess-5.4.0-1.0.i386.rpm

I am trying to call a simple stored procedure on an iSeries / AS400:

#!/usr/bin/perl -w

use strict;

$ENV{PERL_DL_NONLAZY}=1;

use DBD::ODBC;

my( $dbh ) = DBI->connect('dbi:ODBC:iseries01', 'user', 'password');
my( $sth ) = $dbh->prepare( "{call CODELIB.ODBC(?, ?, ?)}");
my( $a ) = 1;
my( $b ) = 2;
my( $c ) = undef;
$sth->bind_param(1, \$a );
$sth->bind_param(2, \$b );
$sth->bind_param_inout(3, \$c, 1 );
$sth->execute();

I will always get returned:
DBD::ODBC::st execute failed: [unixODBC][IBM][iSeries Access ODBC
Driver]Error in assignment. (SQL-22018)(DBD: st_execute/SQLExecute
err=-1) at ./odbc.pl line 26.

I opened up a support request with IBM...after sending them my traces,
they have determined that there is a bug in the perl code:

"The values for Col Def & Scale in the SQLBindparameter do not match
with the parameters descriptions returned in the prepare "

Is there someone who can fix this bug so that perl will be able to
call an iSeries stored procedure ?


-Thanks
Stephen More

Reply via email to