RPG 関係者から、6 つのデータ テーブルを返す「ストアド プロシージャ」が提供されています。iSeries Provider for .NET を使用して .NET (C#、3.5) から呼び出そうとすると (V5R4 と V6R1 の両方を使用して試行)、ストアド プロシージャの呼び出し方法に基づいて異なる結果が表示されます。これが私たちがそれを行うことを好む方法です:
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);
}
}
このようにすると、結果セットに 5 つのテーブルが返されます。ただし、これを行うと:
cmd.CommandType = CommandType.Text;
cmd.CommandText = "CALL StoredProcName('" + thing + "')";
期待されるSIXテーブルが返されます。
申し訳ありませんが、.NET から DB2 に移行する人はあまりいないと思いますが、誰かがこれを以前に見たことがあることを願っています。
ティア。