1

Ibatis.NET を使用してある種のサーチャーを開発しています。これまでのところ、これはプロシージャの sqlMap です。

 <statement id="statementId"  parameterClass="parameterObject" resultClass="resultClass">
  DECLARE @table1 Table1,
  @table2 Table2

  INSERT INTO @table1 (Value1, Value2)
  VALUES
  <iterate  property="valueList" open="(" close=")" conjunction="),(">
    #valueList[].Item1#,#valueList[].Item2#
  </iterate>
  INSERT INTO @table2 (Value1, Value2)
  VALUES
  <iterate  property="valueList2" open="(" close=")" conjunction="),(">
    #valueList2[].Item1#,#valueList2[].Item2#
  </iterate>


  EXEC [SP_StoredProcedure]
  @tvisible=@tvisible,
  @tparametro=@tparametro,
</statement>

StoredProcedure は、パラメーター table1 によって決定される一連の列を返します。問題が発生するのは、4 つの値を返す呼び出しを行ってから、3 つの値を返す別の呼び出しを行うと、範囲外のインデックスが発生するという例外です。sqlDataReader は以前に返された 4 つの列を読み込もうとしていると思いますが、今回は 3 つの列のみで構成されています。

これを解決するための提案をいただければ幸いです。

4

0 に答える 0