FireDAC.Stan.Option.TFDFetchOptions.CursorKind
Delphi
property CursorKind: TFDCursorKind read GetCursor write SetCursor stored IsCKS default ckAutomatic;
C++
__property TFDCursorKind CursorKind = {read=GetCursor, write=SetCursor, stored=IsCKS, default=0};
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
property | published | FireDAC.Stan.Option.pas FireDAC.Stan.Option.hpp |
FireDAC.Stan.Option | TFDFetchOptions |
説明
FireDAC コマンドまたはデータセットで使用されるカーソルの種類を指定します。
CursorKind は、FireDAC コマンドまたはデータセットにより、開いているときに結果セットに使用されるカーソルの種類を設定します。CursorKind はコマンドまたはデータセットを準備する前に設定する必要があります。
既に使用しているデータセットの CursorKind を変更するには、アプリケーションで Disconnect メソッドを先に呼び出します。
CursorKind により次の項目が変わります。
- 最初のレコードを返す、または結果セットを開く時間。
- 結果セットのすべてのレコードを返す時間。
- 開いている複数のカーソルを使用する機能。
- カーソルの安定性。
- DBMS で使用される各リソース。
- TFDTable モード。
オプション |
説明 |
---|---|
|
他の取得オプションや結果セットの構造に応じて、ドライバがカーソルの種類を自動的に選択します。 |
|
デフォルトのクライアント側カーソルがドライバで使用されます。デフォルト カーソルでは、クエリ実行時のレコードのスナップショットを生成します。取得に関して最高のパフォーマンスが得られる可能性がありますが、Open 呼び出し時に結果セット レコードがすべてクライアントに送信されるので、最初のレコードを返すのにかかる時間が長くなります。一部の DBMS では、接続ごとに、アクティブなデフォルト カーソルを 1 つしかサポートしていません。 |
|
動的なサーバー側カーソルがドライバで使用されます。動的カーソル行は、カーソルがアクティブな間、クエリ テーブルに対する更新により変更されることがあります。最初のレコードを返す時間は短くなりますが、すべてのレコードでは長くなる可能性があります。 |
|
静的なサーバー側カーソルがドライバで使用されます。静的カーソルでは、クエリ実行時のレコードのスナップショットを生成します。取得のパフォーマンスは動的カーソルの場合と同様です。 |
|
順方向専用のサーバー側カーソルがドライバで使用されます。FireDAC の順方向専用カーソルは動的カーソルや静的カーソルと似ています。FireDAC のデータセット スクロール機能を制御するには、Unidirectional プロパティを使用します。 |
デフォルト値は ckAutomatic
です。
FireDAC の多くのドライバでは、一部のカーソルの種類だけをサポートします。つまりこのオプションを使用しません。詳細は、DBMS のドキュメントを参照。FireDAC では、CursorKind=ckAutomatic
であるとき、次のように、実際のカーソルの種類が選択されます。
DBMS |
条件 |
実際のカーソルの種類 |
---|---|---|
Microsoft SQL Server |
|
デフォルト カーソル。 |
該当しない場合。 |
静的カーソル。 | |
IBM DB2 |
-- |
順方向専用カーソル。 |
Sybase SQL Anywhere、Microsoft Access |
結果セットに BLOB フィールドがある場合。 |
動的カーソル。 |
該当しない場合。 |
デフォルト カーソル。 | |
PostgreSQL |
Mode が |
デフォルト カーソル。 |
該当しない場合。 |
静的カーソル。 | |
その他 |
-- |
デフォルト カーソル。 |
TFDTable では、テーブルに一意識別フィールドがある場合、ckAutomatic によりライブ データ ウィンドウが有効になります。ckDynamic
では、ライブ データ ウィンドウが無条件に有効になり、DB テーブルに一意のキーがない場合、例外が発生します。他のカーソルの種類では、ライブ データ ウィンドウ モードが無効になり、TFDTable が標準モード(TFDQuery と同様の動作)に設定されます。