> 
> 
> Folks,
> 
> I have tried to use many different combinations of trying to 
> call a DB2 
> stored procedure through a cgi script but this is what I see 
> in the error 
> logs, "[Fri Aug 20 10:46:56 2004] mail2_form.pl: 
> DBD::ODBC::st execute 
> failed: [IBM][CLI Driver][DB2] SQL0440N  No function by the name 
> "EPOSP511" having compatible arguments was found in the 
> function path. 
> SQLSTATE=42884"
> 
> I have already made sure that the stored procedure exists in 
> the region 
> where I am connecting to on the mainframe and the prepare 
> call also has 
> the fully qualified name of the stored procedure. I can call 
> the stored 
> procedure from the region where it is supposed to run through 
> DB2 Connect, 
> but on using DBI:ODBC I get the above error message.
> 
> I am also attaching the code to have a few more sets of eyes 
> have a look 
> at it in case there is something that I have missed. Another 
> thing that I 
> notice in the output is that there is a message, "Can't call 
> method commit 
> on an undefined value at mail2_form.pl line 80." I presume this is 
> something to do with the parameter not getting the value it 
> is supposed to 
> get when binding.
> 
> Any help in trying to get this working would be greatly welcome.

I'm guessing that DB2 is not automatically converting a parameter type or
something similar.  It's probably either a type conversion isssue (or lack
of) or a typo (too many params, not enough, etc).

I would start with smaller examples and work your way up to this procedure
to see which one is causing the issue.

On another note, you don't call $sth->commit, it's $dbh->commit;

Jeff

> 
> Thanks in advance,
> Samarth
> 
> 
> use DBI;
> use CGI qw( :standard );
> use CGI::Carp qw( warningsToBrowser fatalsToBrowser );
> 
> my $subsystem           = "DD0G";
> my $username            = "";
> my $password            = "";
> 
> print( "Content-type: text/html\n\n" ); 
> print( "<html>\n" );
> print( "<head>\n" );
> print( "\t<title>DBI Connection Test</title>\n" );
> print( "</head>\n" );
> print( "<body>\n" );
> 
> my $dbh = DBI -> connect( "DBI:ODBC:$subsystem", "$username", 
> "$password" 
> );
> if( !$dbh ) {
>     print( "Unable to connect to database!!" . DBI -> errstr );
>    exit;
> }
> else {
>     print( "Connected to DB2!!\n" );
> }
> 
> my $sth = $dbh -> prepare( q{ CALL 
> DD0GWIN1.EPOSP511('AVGI04','CIA','WECIAINT','CREWNET','2004-08
> -19-16.25.32.948427','N',0,0,0,' 
> ',' ','Y',?)} );
> $sth -> bind_param( 1, '\'17699\'' );
> $sth -> execute();
> if( $@ ) {
>     print( "execute failed" );
>     $dbh -> disconnect;
>     exit;
> }
> 
> print( "Executed stored procedure" );
> 
> $sth -> commit;
> $sth -> finish();
> $dbh -> disconnect();
> 
> print( "\n</body>" );
> print( "</html>\n" );
> 

Reply via email to