FireDAC.Stan.Option.TFDFetchOptions.CursorKind

提供: RAD Studio API Documentation
移動先: 案内検索

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 モード。

オプション

説明

ckAutomatic

他の取得オプションや結果セットの構造に応じて、ドライバがカーソルの種類を自動的に選択します。

ckDefault

デフォルトのクライアント側カーソルがドライバで使用されます。デフォルト カーソルでは、クエリ実行時のレコードのスナップショットを生成します。取得に関して最高のパフォーマンスが得られる可能性がありますが、Open 呼び出し時に結果セット レコードがすべてクライアントに送信されるので、最初のレコードを返すのにかかる時間が長くなります。一部の DBMS では、接続ごとに、アクティブなデフォルト カーソルを 1 つしかサポートしていません。

ckDynamic

動的なサーバー側カーソルがドライバで使用されます。動的カーソル行は、カーソルがアクティブな間、クエリ テーブルに対する更新により変更されることがあります。最初のレコードを返す時間は短くなりますが、すべてのレコードでは長くなる可能性があります。

ckStatic

静的なサーバー側カーソルがドライバで使用されます。静的カーソルでは、クエリ実行時のレコードのスナップショットを生成します。取得のパフォーマンスは動的カーソルの場合と同様です。

ckForwardOnly

順方向専用のサーバー側カーソルがドライバで使用されます。FireDAC の順方向専用カーソルは動的カーソルや静的カーソルと似ています。FireDAC のデータセット スクロール機能を制御するには、Unidirectional プロパティを使用します。

デフォルト値は ckAutomatic です。

FireDAC の多くのドライバでは、一部のカーソルの種類だけをサポートします。つまりこのオプションを使用しません。詳細は、DBMS のドキュメントを参照。FireDAC では、CursorKind=ckAutomatic であるとき、次のように、実際のカーソルの種類が選択されます。

DBMS

条件

実際のカーソルの種類

Microsoft SQL Server

  • サーバー バージョンが 2005 以上の場合。
  • あるいは、ModefmExactRecsMax または fmAll である場合。
  • あるいは、DirectExecuteTrue に設定されている場合。

デフォルト カーソル。

該当しない場合。

静的カーソル。

IBM DB2

--

順方向専用カーソル。

Sybase SQL Anywhere、Microsoft Access

結果セットに BLOB フィールドがある場合。

動的カーソル。

該当しない場合。

デフォルト カーソル。

PostgreSQL

ModefmExactRecsMax または fmAll である場合。

デフォルト カーソル。

該当しない場合。

静的カーソル。

その他

--

デフォルト カーソル。

TFDTable では、テーブルに一意識別フィールドがある場合、ckAutomatic によりライブ データ ウィンドウが有効になります。ckDynamic では、ライブ データ ウィンドウが無条件に有効になり、DB テーブルに一意のキーがない場合、例外が発生します。他のカーソルの種類では、ライブ データ ウィンドウ モードが無効になり、TFDTable が標準モード(TFDQuery と同様の動作)に設定されます。

関連項目