-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 中返回 SQL 代码 -310,即“DECIMAL HOST VARIABLE OR PARAMETER number CONTAINS NON-DECIMAL DATA”。

4

1 回答 1

0

原来返回到 COBOL 测试程序的错误 -310 是要查看的错误。

所以我们在 COBOL 存储过程中将 DECIMAL 更改为 NUMBER,现在我们返回参数而不是异常。

仍然不知道为什么只有在选择找不到任何记录时才是一个问题。我只看世界的c#一面。哎呀!

于 2015-07-30T19:30:36.957 回答