老妖求助: 关于asp.net调用informix存储过程的问题
存储过程如下:
CREATE PROCEDURE sp001p(i_policy_no CHAR(10)
, i_loan_date CHAR(9)
, i_cv_date CHAR(9)
)
RETURNING SMALLINT
;
DEFINE p_cmd CHAR(250);
DEFINE p_cnt SMALLINT;
LET p_cnt = 0;
SELECT COUNT(*)
INTO p_cnt
FROM pc21ivr
WHERE policy_no = i_policy_no
AND loan_date = i_loan_date
AND cv_date = i_cv_date;
IF p_cnt < 1 THEN
LET p_cmd =
"/singdev/run/pc096p.4ge"
|| " '1'"
|| " '"|| i_policy_no || "'"
|| " '"|| i_loan_date || "'"
|| " '"|| i_cv_date || "'";
SYSTEM p_cmd;
LET p_cnt = 0;
SELECT COUNT(*)
INTO p_cnt
FROM pc21ivr
WHERE policy_no = i_policy_no
AND loan_date = i_loan_date
AND cv_date = i_cv_date;
END IF;
RETURN p_cnt
WITH RESUME;
END PROCEDURE;
返回值为0或大于0
我用asp.net调用这个存储过程.代码如下:
public static int RunSp001P(string policyNo, string loanDate,
string cvDate)
{
OdbcParameter[] parm = new OdbcParameter[] { new
OdbcParameter("i_policy_no", OdbcType.Char, 10), new OdbcParameter
("i_loan_date", OdbcType.Char, 9), new OdbcParameter("i_cv_date",
OdbcType.Char, 9) };
//OdbcParameter[] parm = new OdbcParameter[] { new
OdbcParameter("?i_policy_no", OdbcType.Char, 10), new OdbcParameter("?
i_loan_date", OdbcType.Char, 9), new OdbcParameter("?i_cv_date",
OdbcType.Char, 9), new OdbcParameter("?returning", OdbcType.SmallInt)
};
parm[0].Value = policyNo;
parm[1].Value = loanDate;
parm[2].Value = cvDate;
parm[3].Direction = ParameterDirection.ReturnValue;
return Convert.ToInt32(ODBCHelper.ExecuteScalar
(ODBCHelper.CONN_STRING_NON_DTC, CommandType.StoredProcedure, "sp004p",
parm));
//ODBCHelper.ExecuteNonQuery(ODBCHelper.CONN_STRING_NON_DTC,
CommandType.StoredProcedure, "sp001p", parm);
//return Convert.ToInt32(parm[3].Value);
}
提示信息: ERROR [42000] [Informix][Informix ODBC Driver][Informix]A
syntax error has occurred.
烦请各位达人指正,现在的问题关键是我想获取他的返回值,我现在没办法获取到.