I have tried the following code: my( $sth ) = $dbh->prepare ("{call PGMRPGMLIB.SYSSTATS(?, ?, ?)}"); my( $asp ) = undef; my( $cpu ) = undef; my( $jobs ) = undef; $sth->bind_param_inout(1, \$asp, 100, DBI::SQL_FLOAT ); $sth->bind_param_inout(2, \$cpu, 100, DBI::SQL_FLOAT ); $sth->bind_param_inout(3, \$jobs, 100, DBI::SQL_INTEGER );
$sth->execute(); As far as I can tell, the code looks fine compared to the examples. When I execute it I get the following error: 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 29 Is there a way I can test this using C at the unixODBC level ? Does anyone have some sample C code that I could use to get started ? -Thanks Steve More On 10/12/05, Jeff Urlwin <[EMAIL PROTECTED]> wrote: > > DBD::ODBC support bind_param_inout... The best way to see an example is > to look at the tests for SQLServer and Oracle. I don't have a DB2 > server to test against, at the moment, but I've tested against both > SQLServer and Oracle. > > Jeff > > > -----Original Message----- > > From: Stephen More [mailto:[EMAIL PROTECTED] > > Sent: Wednesday, October 12, 2005 2:30 PM > > To: dbi-users@perl.org > > Subject: bind_param_inout + DBD::ODBC > > > > I am currently having a problem calling a stored procedure on > > an iSeries. > > DBD::ODBC::st execute failed: [unixODBC][IBM][iSeries Access > > ODBC Driver]Error in assignment. (SQL-22018)(DBD: > > st_execute/SQLExecute err=-1) > > > > > > In looking through the perldoc doc for DBI I found: > > > > "bind_param_inout" > > It is expected that few drivers will support this method. The > > only driver currently known to do so is DBD::Oracle > > (DBD::ODBC may support it in a future release). Therefore it > > should not be used for database independent applications. > > > > Does DBD::ODBC support bind_param_inout ?? > > If not, how can you call a stored procedure from perl using ODBC ? > > > > -Thanks > > Steve More > > >