1
我们已经从我们的RPG人员那里获得了一个“存储过程”,它返回了六个数据表。尝试使用iSeries Provider for .NET从.NET(C#,3.5)调用它(尝试使用V5R4和V6R1),我们看到了基于我们如何调用存储过程的不同结果。下面是办法,我们宁愿做:非常奇怪的iSeries Provider行为
using (var dbConnection = new iDB2Connection("connectionString"))
{
dbConnection.Open();
using(var cmd = dbConnection.CreateCommand())
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "StoredProcName";
cmd.Parameters.Add(new iDB2Parameter("InParm1",
iDB2DbType.Varchar).Value = thing;
var ds = new DataSet();
var da = new iDB2DataAdapter(cmd);
da.Fill(ds);
}
}
这样做,这样,我们就得到FIVE表早在结果集。但是,如果我们这样做:
cmd.CommandType = CommandType.Text;
cmd.CommandText = "CALL StoredProcName('" + thing + "')";
我们找回了预期SIX表。
我意识到我们中很多人都对不起.NET到DB2的人,但我希望以前有人看到过。
TIA。
谢谢!我们没有体验到这一点,但是这绝对是值得注意的事情,并且很好意识到。 – David 2010-12-14 14:38:26