0

int を返す 2 つのパラメーターを持つストアド プロシージャがあります。

私の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 を呼び出す] ---> MySql.Data.MySqlClient.MySqlException: SQL 構文にエラーがあります。

助言がありますか?

4

2 に答える 2

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 に答える
0

そうではないはずです:-

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

params を囲む中括弧に注意してください。

あなたのMySqlデータベースに対してこれを実行してください、それは実行されますか?

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