sp_cursorprepare (Transact-SQL)
カーソル ステートメントまたはバッチをコンパイルして実行プランを作成します。カーソルは作成しません。コンパイルされたステートメントは、後で sp_cursorexecute で使用できます。このプロシージャは、sp_cursorexecute と組み合わせると sp_cursoropen と同じ機能になりますが、2 つのフェーズに分割されたものになります。sp_cursorprepare は、ID = 3 を指定した場合に表形式のデータ ストリーム (TDS) パケットで呼び出されます。
構文
sp_cursorprepare
prepared_handle
OUTPUT,
params
,
stmt
,
options
[ , scrollopt[ , ccopt]]
引数
prepared_handle
SQL Server によって生成される準備済みハンドル識別子で、整数値を返します。注 prepared_handle は、その後カーソルを開くために sp_cursorexecute プロシージャに渡されます。作成されたハンドルは、ログオフするか sp_cursorunprepare プロシージャを使用して明示的に削除するまで存在します。
params
パラメーター化されたステートメントを指定します。変数の params 定義は、ステートメントのパラメーター マーカーと置き換えられます。params は、ntext、nchar、または nvarchar 入力値を必要とする必須パラメーターです。ステートメントがパラメーター化されていない場合は、NULL 値を入力します。注 stmt がパラメーター化されており、scrollopt PARAMETERIZED_STMT の値が ON になっている場合は、ntext 文字列を入力値として使用してください。
stmt
カーソル結果セットを定義します。stmt パラメーターは必須で、ntext、nchar、または nvarchar 入力値を必要とします。注 stmt の値を指定するためのルールは sp_cursoropen の場合と同じですが、stmt の文字列データ型を ntext にする必要がある点が異なります。
options
カーソル結果セット列の説明を返す省略可能なパラメーターです。options は、次の int 入力値を必要とします。値
説明
0x0001
RETURN_METADATA
scrollopt
スクロール オプションです。scrollopt は省略可能なパラメーターで、次の int 入力値のいずれかを必要とします。値
説明
0x0001
KEYSET
0x0002
DYNAMIC
0x0004
FORWARD_ONLY
0x0008
STATIC
0x10
FAST_FORWARD
0x1000
PARAMETERIZED_STMT
0x2000
AUTO_FETCH
0x4000
AUTO_CLOSE
0x8000
CHECK_ACCEPTED_TYPES
0x10000
KEYSET_ACCEPTABLE
0x20000
DYNAMIC_ACCEPTABLE
0x40000
FORWARD_ONLY_ACCEPTABLE
0x80000
STATIC_ACCEPTABLE
0x100000
FAST_FORWARD_ACCEPTABLE
要求される値が stmt で定義されているカーソルに適していない可能性があるので、このパラメーターは入力と出力の両方として機能します。このような場合は、SQL Server によって適切な値が割り当てられます。
ccopt
同時実行制御オプションです。ccopt は省略可能なパラメーターで、次の int 入力値のいずれかを必要とします。値
説明
0x0001
READ_ONLY
0x0002
SCROLL_LOCKS (以前の LOCKCC)
0x0004
OPTIMISTIC (以前の OPTCC)
0x0008
OPTIMISTIC (以前の OPTCCVAL)
0x2000
ALLOW_DIRECT
0x4000
UPDT_IN_PLACE
0x8000
CHECK_ACCEPTED_OPTS
0x10000
READ_ONLY_ACCEPTABLE
0x20000
SCROLL_LOCKS_ACCEPTABLE
0x40000
OPTIMISTIC_ACCEPTABLE
0x80000
OPTIMISITC_ACCEPTABLE
scrollpt と同様に、要求される値とは異なる値を SQL Server で割り当てることができます。
説明
RPC 状態パラメーターは次のいずれかになります。
値 |
説明 |
---|---|
0 |
成功 |
0x0001 |
失敗 |
1FF6 |
メタデータを返すことができませんでした。
注
これは、ステートメントで結果セットが生成されないためです (INSERT ステートメントや DDL ステートメントなど)。
|
例
stmt がパラメーター化されており、scrollopt PARAMETERIZED_STMT の値が ON になっている場合、文字列の形式は次のとおりです。
{ <ローカル変数名><データ型> } [ ,…n ]