4

これらのコンポーネントには、複数の結果セット (ストアド プロシージャなど) を一度に取得する機能があり、D5 を使用すると、NextRecordSet を使用して SQL Server から 2 番目以降の結果セットを正常に取得できます。

ただし、これはカーソル位置を clClient として指定した場合にのみ機能します。clServer を使用すると、「複数の結果セットを返さない」というエラーが表示されます。これは固有の制限 (たとえば、クライアントの MDac レイヤーによって課される) ですか、それともサーバー側カーソルから複数のレコードセットを正常に取得できますか?

4

1 に答える 1

3

これは、サーバー側カーソル固有の制限です。次のMSDN リンクに記載されているとおり:

サーバー カーソルは、複数のレコードセットを生成するステートメントでは使用できません。

この制限は、複数のレコードセットの生成で説明されているすべてのステートメントに適用されます。詳細については、「複数のレコードセットを生成する 」を参照してください。複数のレコードセットを生成するステートメントでサーバー カーソルを使用すると、アプリケーションは次のいずれかのエラーを返す可能性があります。

  • 単一の SELECT ステートメント以外のものを含むストアド プロシージャでカーソルを開くことはできません。
  • sp_cursoropen. ステートメント パラメーターは、単一の SELECT ステートメントまたはストアド プロシージャのみにすることができます。
于 2013-08-09T06:53:51.783 に答える