-1

ExecuteResultSetまたは のいずれかを使用してストアド プロシージャを呼び出す場合ExecuteReader

using (DB2Connection conn = new DB2Connection(connstr))
{
    conn.Open();
    DB2Command cmd = conn.CreateCommand();
    cmd.Transaction = conn.BeginTransaction();

    DB2Parameter db2param = new DB2Parameter("@ENTERPRISE_ID_PR091", DB2Type.Char, 15);
    db2param.Direction = ParameterDirection.InputOutput;
    db2param.Value = enterpriseID.ToCharArray();
    cmd.Parameters.Add(db2param);

    //... many parameters

    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.CommandText = "XXISCHMA.XXIPW09D"; 

    DB2ResultSet dr = cmd.ExecuteResultSet(DB2ResultSetOptions.Scrollable);
}

Web API では、例外がスローされます。

SQL0035N ファイル "C:\Users\documents\visual studio 2013\Projects\App\Web\msg\en_US\db2nmp.xml" を開けません

他のアプリケーションでは例外がスローされます:

エラー [22023] [IBM][DB2] SQL0310N SQL ステートメントに含まれるホスト変数が多すぎます。

例外テキストが正しいとは思わない...

これは設計によるものですか?

COBOL では、-310 の SQL コードが返されます。これは、「DECIMAL HOST VARIABLE OR PARAMETER number CONTAINS NON-DECIMAL DATA」です。

4

1 に答える 1

0

COBOL テスト プログラムに返されたエラー -310 が注目すべきエラーであることが判明しました。

そこで、COBOL ストアド プロシージャの DECIMAL TO NUMBER を変更し、例外ではなくパラメーターを取得するようになりました。

選択でレコードが見つからない場合にのみ、これが問題になる理由はまだわかりません。私は世界のC#側だけを見ています。おいおい!

于 2015-07-30T19:30:36.957 に答える