I created a stored procedure based on a COBOL program named
MANLIB/MAN535CLT with this code executed through iSeries Navigator SQL
Script window:
+++++++++++++++++++++++++++++++++++++++++++++++++
CREATE PROCEDURE MANLIB.MAN535CLT
(
INOUT EMAILADR80 VARCHAR(60),
INOUT EMAILVALID1 VARCHAR(1),
INOUT EMAILTYPE1 VARCHAR(1) )
LANGUAGE
COBOL
EXTERNAL NAME MANLIB.MAN535CLT;
++++++++++++++++++++++++++++++++++++++++++++++++
The SQL script window reported that it was created *successfully*.
But when I run the code below, it throws the exception:
{"SQL0440 Routine MAN535CLT in MANLIB not found with specified
parameters." }
++++++++++++++++++++++++++++++++++++++++++++++++
public string scrubEmail(
string emailaddrs)
{
string scrubbedEmail=emailaddrs.PadRight(60, ' ');
string cmdtext = "MANLIB.MAN535CLT";
iDB2Command icmd =
new iDB2Command(
cmdtext,
icon );
icmd.CommandType = CommandType.StoredProcedure;
icmd.CommandTimeout=300;
icmd.Parameters.Add("@EMAILADR80", iDB2DbType.iDB2VarChar,60);
icmd.Parameters["@EMAILADR80"].Direction=ParameterDirection.InputOutput;
icmd.Parameters["@EMAILADR80"].Value = scrubbedEmail;
icmd.Parameters.Add("@EMAILVALID1", iDB2DbType.iDB2VarChar,1);
icmd.Parameters["@EMAILVALID1"].Direction=ParameterDirection.InputOutput;
icmd.Parameters["@EMAILVALID1"].Value = " ";
icmd.Parameters.Add("@EMAILTYPE1", iDB2DbType.iDB2VarChar,1);
icmd.Parameters["@EMAILTYPE1"].Direction=ParameterDirection.InputOutput;
icmd.Parameters["@EMAILTYPE1"].Value = " ";
try
{
icon.Open();
icmd.ExecuteNonQuery();
scrubbedEmail = icmd.Parameters["@EMAILADR80"].Value.ToString();
}
catch (Exception e)
{
Debug.WriteLine(e.ToString());
}
finally
{
icon.Close();
icmd.Dispose();
icon.Dispose();
}
return scrubbedEmail;
}
--
Texeme Construct
http://www.myspace.com/texeme