使用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中抛出了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”。
答案 0 :(得分:0)
结果显示返回COBOL测试程序的错误-310是要查看的错误。
所以我们在COBOL存储过程中更改了DECIMAL TO NUMBER,现在我们返回参数而不是异常。
只有当select没有找到任何记录时,仍然不知道为什么这是一个问题。我只看世界的c#侧。 Oy veh!