説明
カスタム・キャッシュ・パラメータとフェッチ・パラメータを使用して、PL/SQLカーソルからダイナセットを作成します。SQL文は、ストアド・プロシージャまたは無名ブロックである必要があります。作成されるダイナセットは読取り専用です。SQLプロパティを設定しようとすると、エラーになります。ダイナセットは、新しいパラメータを指定してリフレッシュできます。
使用方法
set OraDynaset = CreatePlsqlCustomDynaset(SQLStatement, CursorName, options, slicesize, perblock, blocks, FetchLimit, FetchSize)
引数
このメソッドの引数は、次のとおりです。
引数 | 説明 |
---|---|
SQLStatement |
有効なOracle PL/SQLストアド・プロシージャまたは無名ブロック。 |
CursorName |
PL/SQLストアド・プロシージャで作成されるカーソルの名前。 |
options |
ダイナセットのオプション状態を示すビット・フラグ。それぞれの値を追加することで1つ以上のオプションを組み合せることができます。 |
slicesize |
キャッシュ・スライス・サイズ。 |
perblock |
ブロック当たりのキャッシュ・スライス。 |
blocks |
キャッシュのブロックの最大数。 |
FetchLimit |
フェッチ配列のサイズ。 |
FetchSize |
フェッチ配列のバッファ・サイズ。 |
定数
オプション・フラグの値は、次のとおりです。
定数 | 値 | 説明 |
---|---|---|
ORADYN_DEFAULT |
&H0& |
デフォルトの動作を受け入れる。 |
ORADYN_NO_AUTOBIND |
&H1& |
データベース・パラメータの自動的なバインドを実行しない。 |
ORADYN_NO_BLANKSTRIP |
&H2& |
データベースから取り出された文字列データから、後続するブランクを削除しない。 |
ORADYN_NOCACHE |
&H8& |
ダイナセット用のローカル・データ・キャッシュを作成しない。ローカル・キャッシュがない場合は、ダイナセットの以前の行は使用できません。ただし、データベースからのデータの取出し(移動操作)と行からのデータの取出し(フィールド操作)のパフォーマンスは向上します。ダイナセットの列を順に取り出すアプリケーションでは、パフォーマンスを向上し、リソースの使用を減らすため、このオプションを使用します。 |
ORADYN_NO_MOVEFIRST |
&H40& |
ダイナセットの作成時にMoveFirst を強制的に実行しない。BOF とEOF は両方ともTRUEです。 |
これらの値は、oraconst.txt
ファイルにあります。
備考
SQL文は、PL/SQLストアド・プロシージャであることが必要で、PL/SQLの無名ブロックを実行する場合のように、コールの前後にBEGIN
とEND
を付ける必要があります(付けない場合は、エラーが戻ります)。CursorName
引数は、ストアド・プロシージャ内またはPL/SQLの無名ブロック内で作成されたカーソルと正確に一致する必要があります(一致しない場合は、エラーが戻ります)。ストアド・プロシージャ内で作成されたカーソルは、有効なSQLのSELECT
文で記述する必要があります。
ストアド・プロシージャにより、出力パラメータとしてカーソルが戻される場合は、OraParameters
のAdd
メソッドを使用してPL/SQLカーソルの変数をバインドする必要はありません。この場合も、PL/SQLのバインド変数を、OraParameters
コレクションと組み合せて使用できます。
このメソッドは、作成されたダイナセットの最初の行に自動的に移動します。
ORADYN_READONLY
、ORADYN_ORAMODE
、ORADYN_NO_REFETCH
、ORADYN_DIRTY_WRITE
の各オプションを指定しても、ダイナセットの作成には影響を与えません。