我有一个存储过程,其中包含两个返回int的参数。
我的mapping.hbm.xml
<sql-query name="CreateAttribute">
<query-param name="idAttrType" type="int"/>
<query-param name="idSystemUser" type="int"/>
call CreateAttribute :idAttrType,:idSystemUser
</sql-query>
C#用法
var t = session.GetNamedQuery("CreateAttribute");
t.SetInt32("idAttrType", 12);
t.SetInt32("idSystemUser",int.Parse(id));
var result = t.List();
然后我收到了以下信息:
[SQL:调用CreateAttribute?p0,?p1] ---&gt; MySql.Data.MySqlClient.MySqlException:您的SQL语法有错误;
有什么建议吗?
答案 0 :(得分:0)
不应该: -
<sql-query name="CreateAttribute">
<query-param name="idAttrType" type="int"/>
<query-param name="idSystemUser" type="int"/>
call CreateAttribute(:idAttrType,:idSystemUser);
</sql-query>
注意参数附近的大括号。
编辑对你的MySql数据库运行它,它运行吗?
call CreateAttribute(0,0);
答案 1 :(得分:0)
修改了以下呼叫 SELECT调用CreateAttribute(0,0); - 它工作了
现在新的映射是
<sql-query name="CreateAttribute">
<query-param name="idAttrType" type="int"/>
<query-param name="idSystemUser" type="int"/>
select CreateAttribute(:idAttrType,:idSystemUser);
</sql-query>