0

私が持っているストアド プロシージャは、count(*) が後に続く結果セットを返します。これは、MS SQL 2012 に移植された Sybase ストアド プロシージャです。

たとえば、それは...

select @resn=resn from borrower_reservations where <conditions>
select count(*) from borrower_reservations where <conditions>

@resn は int out パラメータとして定義されています。

C++ で SqlCommand::Execute() を使用して両方の結果を取得する方法を理解できませんでした。

ExecuteNonQuery() がパラメーターを設定し、ExecuteScalar() が count(*) を含む単一の値に最適であることを認識しています。

HasRows テストが false を返すため、ExecuteReader() が機能していないようです。

このタイプのストアド プロシージャを処理することは可能ですか、それともストアド プロシージャを書き直す必要がありますか?

4

1 に答える 1

0

SqlDataReader.NextResultを参照してください( SqlDataReader は SqlCommand.ExecuteReader によって返されます)。

バッチ Transact-SQL ステートメントの結果を読み取るときに、データ リーダーを次の結果 [セット] に進めます。

于 2013-07-17T11:47:23.033 に答える