0

我有一个带有两个返回 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: call CreateAttribute ?p0,?p1] ---> MySql.Data.MySqlClient.MySqlException: 你的 SQL 语法有错误;

有什么建议么?

4

2 回答 2

0

Should it not be:-

   <sql-query name="CreateAttribute">
        <query-param name="idAttrType" type="int"/>
        <query-param name="idSystemUser" type="int"/>
        call CreateAttribute(:idAttrType,:idSystemUser);
    </sql-query>

Notice the braces around the params.

edit run this against your MySql database, does it run?

call CreateAttribute(0,0);
于 2012-07-20T11:44:37.910 回答
0

修改调用如下 SELECT call 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>
于 2012-07-20T13:32:24.280 回答