FireDAC.Stan.Option.TFDFetchOptions.Mode

提供: Appmethod Libraries
移動先: 案内検索

Object Pascal

property Mode: TFDFetchMode read GetMode write SetMode  stored IsMS default fmOnDemand;

C++

__property TFDFetchMode Mode = {read=GetMode, write=SetMode, stored=IsMS, default=1};

プロパティ

種類 可視性 ソース ユニット
property published
FireDAC.Stan.Option.pas
FireDAC.Stan.Option.hpp
FireDAC.Stan.Option TFDFetchOptions

説明

データの取得方法を制御します。


Mode プロパティを使用して、結果セットのレコードを FireDAC の内部データ記憶域に取得する方法を制御することができます。

モード

説明

fmManual

レコードは FireDAC で自動的に取得されません。プログラム内のコードで以下のメソッドを使って、適切な時点でレコードを取得する必要があります。

  • FetchAll(すべてのレコードを取得する場合)
  • GetNextPacket(RowsetSize 件のレコードを格納した次のレコード セット(パケット)を取得する場合)

fmOnDemand

レコードは、ナビゲーションや他のデータセット メソッドで必要になったときに FireDAC により自動的に取得されます。FireDAC では、必要になるたびに、RowsetSize 件のレコードを格納したレコード セットを 1 つ以上取得します。このモードでは、fmAll モードで発生する顕著な遅延なしに、サイズの大きい結果セットを開くことができます。ただし、すべてのレコードを取得するために必要な合計時間は、fmAll モードの場合よりも長くなります。たとえば、Microsoft SQL Server の場合、サーバー側で静的なカーソルが使われます。

fmAll

結果セットのレコードはすべて、データセットの Open を呼び出したときに FireDAC によって自動的に取得されます。結果セットのサイズが大きい場合は少し時間がかかる可能性がありますが、すべてのレコードが FireDAC の内部データ記憶域に格納されるので、データセット内のナビゲーションは高速です。Microsoft SQL Server、MySQL Server、Sybase SQL Anywhere などの多くの DBMS では、次のような状況です。

  • クライアントの結果セット バッファが解放されます。そのため、結果セットを返す次のコマンドを実行できます。
  • 取得に関して、最高のパフォーマンスが得られます。たとえば、Microsoft SQL Server の場合、前方にのみ移動する高速のカーソルが使われます。

fmExactRecsMax

fmAll と同様ですが、取得したレコードの数が RecsMax に指定された数と異なる場合には例外が発生します。

デフォルト値は fmOnDemand です。ただし、TFDCustomMemTable の場合には fmAll になります。

関連項目