データセットの状態の決定
データセットの理解:インデックス への移動
データセットの状態(または,モード)によって,そのデータに対して何ができるかが決まります。たとえばデータセットが閉じた場合,その状態は dsInactive になり,そのデータに対して何もできないことが示されます。実行時にデータセットの読み出し専用 State プロパティを調べれば,データセットの現在の状態がわかります。次の表に State プロパティの値とその意味を示します。
データセットの State プロパティの値 :
値 | 状態 | 意味 |
---|---|---|
dsInactive |
停止 |
データセットは閉じている。データは使用できない |
dsBrowse |
参照 |
データセットは開いている。データの取得はできるが,変更はできない。これは,開いているデータセットのデフォルトの状態である |
dsEdit |
編集 |
データセットは開いている。現在の行を変更できる(単方向データセットでは未サポート) |
dsInsert |
挿入 |
データセットは開いている。新しい行が挿入された(単方向データセットでは未サポート) |
dsSetKey |
SetKey |
データセットは開いている。範囲の設定および範囲の設定に使用されるキーの値と GotoKey の操作ができる(すべてのデータセットでサポートされているわけではない) |
dsCalcFields |
CalcFields |
データセットは開いている。OnCalcFields イベントが進行中であることを示す。計算項目以外の項目の変更を防止する |
dsCurValue |
CurValue |
データセットは開いている。キャッシュされた更新の適用時のエラーに応答するイベントハンドラのために,項目の CurValue プロパティを取得中であることを示す |
dsNewValue |
NewValue |
データセットは開いている。キャッシュされた更新の適用時のエラーに応答するイベントハンドラのために,項目の NewValue プロパティを取得中であることを示す |
dsOldValue |
OldValue |
データセットは開いている。キャッシュされた更新の適用時のエラーに応答するイベントハンドラのために,項目の OldValue プロパティを取得中であることを示す |
dsFilter |
フィルタ |
データセットは開いている。フィルタが動作中であることを示す。取得できるデータは限られており,データの変更はできない(単方向データセットでは未サポート) |
dsBlockRead |
ブロック読み出し |
データセットは開いている。現在のレコードが変更されたときにも,データベース対応コントロールは更新されず,イベントは発生しない |
dsInternalCalc |
内部計算 |
データセットは開いている。レコードに保存されている計算値に対して OnCalcFields イベントが進行中である(クライアントデータセット専用) |
dsOpening |
開いている |
DataSet が開く途中であって完全に開いていない。この状態が発生するのは,データセットが非同期フェッチのために開かれたとき |
通常,アプリケーションはデータセットの状態をチェックして,特定のタスクをいつ実行するべきかを決定します。たとえば,更新を登録する必要があるかどうかを確認するために,dsEdit か dsInsert 状態をチェックする場合があります。
メモ: データセットが状態を変える場合は,必ずそのデータセットに関連したデータソースコンポーネントの OnStateChange イベントが呼び出されます。データソースコンポーネントと OnStateChange の詳細は,「データソースに仲介された変更に応答する」を参照してください。