DB2Command没有结果,没有错误代码.Net

时间:2015-07-28 12:54:37

标签: c# .net db2 cobol db2-connect

使用ExecuteResultSetExecuteReader

调用存储过程时
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中抛出了Exception:

  

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包含非DECIMAL DATA”。

1 个答案:

答案 0 :(得分:0)

结果显示返回COBOL测试程序的错误-310是要查看的错误。

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

只有当select没有找到任何记录时,仍然不知道为什么这是一个问题。我只看世界的c#侧。 Oy veh!