適用対象:SQL Server
sp_cursorprepareによって作成された実行プランに基づいてカーソルを作成して設定します。 この手順は、 sp_cursorprepareと組み合わせて、 sp_cursoropenと同じ機能を持っていますが、2 つのフェーズに分割されます。
sp_cursorexecute は、表形式データ ストリーム (TDS) パケットで ID = 4 を指定することによって呼び出されます。
構文
sp_cursorexecute prepared_handle , cursor
[ , scrollopt [ OUTPUT ]
[ , ccopt [ OUTPUT ]
[ , rowcount OUTPUT [ , bound param ] [ , ...n ] ] ] ]
[ ; ]
引数
大事な
拡張ストアド プロシージャの引数は、「構文の」セクションで説明されているように、特定の順序で入力する必要があります。 パラメーターが順に入力されていない場合は、エラー メッセージが表示されます。
prepared_handle
prepared ステートメント handlesp_cursorprepareによって返される値。
prepared_handle パラメーターは int であり、NULLすることはできません。
cursor
データベース エンジン生成されたカーソル識別子。
cursor は、カーソルに作用するすべての後続のプロシージャ ( sp_cursorfetchなど) で指定する必要がある必須パラメーターです。
scrollopt
スクロール オプションです。
scrollopt パラメーターは int で、既定値は NULL です。
sp_cursorexecute
scrollopt パラメーターには、sp_cursoropenと同じ値オプションがあります。
PARAMETERIZED_STMT値はサポートされていません。
scrollopt値が指定されていない場合、既定値は、KEYSETで指定scrollopt値に関係なくsp_cursorprepareされます。
ccopt
通貨コントロール オプション。
ccopt は、 int 入力値を必要とする省略可能なパラメーターです。
sp_cursorexecute
ccopt パラメーターには、sp_cursoropenと同じ値オプションがあります。
ccopt値が指定されていない場合、既定値は、OPTIMISTICで指定ccopt値に関係なくsp_cursorprepareされます。
rowcount
AUTO_FETCHで使用するフェッチ バッファー行の数を示す省略可能なパラメーター。 既定値は 20 行です。
rowcount は、入力値と戻り値として割り当てられた場合の動作が異なります。
| 入力値として | 戻り値として |
|---|---|
AUTO_FETCH カーソルでFAST_FORWARDが指定されている場合、rowcount はフェッチ バッファーに配置する行数を表します。 |
結果セット内の行数を表します。
scrolloptAUTO_FETCH値を指定すると、rowcountはフェッチ バッファーにフェッチされた行数を返します。 |
bound_param
追加パラメーターの省略可能な使用を示します。
5 番目以降のすべてのパラメーターは、入力パラメーターとしてステートメント プランに渡されます。
リターン コードの値
rowcount は次の値を返します。
| 値 | 説明 |
|---|---|
-1 |
不明な行の数。 |
-n |
非同期設定が有効になっています。 |
解説
scrollopt パラメーターと ccopt パラメーター
scrollopt と ccopt は、キャッシュされたプランがサーバー キャッシュに割り当てられている場合に便利です。つまり、ステートメントを識別する準備済みハンドルを再コンパイルする必要があります。
scrollopt および ccopt パラメーターの値は、元の要求でsp_cursorprepareに送信された値と一致する必要があります。
PARAMETERIZED_STMT は、 scrollopt に割り当てることはできません。
一致する値を指定しないと、プランが再コンパイルされ、準備操作と実行操作が否定されます。
RPC と TDS に関する考慮事項
RPC RETURN_METADATA 入力フラグを 1 に設定して、カーソル選択リストのメタデータが TDS ストリームに返されるように要求できます。