データセットの状態の決定
データセットの理解:インデックス への移動
データセットの状態(またはモード)によって、そのデータに対して何ができるかが決まります。たとえば、データセットが閉じられた際、その状態は dsInactive となり、そのデータに対しては何もできない、ということを意味します。実行時、データセットの読み取り専用 State プロパティを?することで、その現在の状態を判断することができます。次の表では、State プロパティが取りえる値と、その意味がまとめてあります:
データセットの State プロパティの値:
値 | 状態 | 意味 |
---|---|---|
dsInactive |
Inactive |
データセットは閉じている。そのデータは利用できない。 |
dsBrowse |
Browse |
データセットは開いている。そのデータは参照できるが、変更できない。これは、開いているデータセットのデフォルトの状態です。 |
dsEdit |
Edit |
データセットは開いている。 現在の行は変更できる(単方向データセットでは未サポート) |
dsInsert |
Insert |
データセットは開いている。 新しい行が挿入または追加された(単方向データセットでは未サポート) |
dsSetKey |
SetKey |
データセットは開いている。 範囲とその範囲に使用されるキー値の設定、および、GotoKey オペレーションが利用可能(すべてのデータセットでサポートされているわけではない) |
dsCalcFields |
CalcFields |
データセットは開いている。 OnCalcFields イベントが進行中。計算フィールド以外のフィールドへの変更を抑制する。 |
dsCurValue |
CurValue |
データセットは開いている。 フィールドの CurValue プロパティが、キャッシュされた更新の適用時のエラーに応答する、イベント ハンドラのためにフェッチされていることを示す。 |
dsNewValue |
NewValue |
データセットは開いている。 フィールドの NewValue プロパティが、キャッシュされた更新の適用時のエラーに応答する、イベント ハンドラのためにフェッチされていることを示す。 |
dsOldValue |
OldValue |
データセットは開いている。 フィールドの OldValue プロパティが、キャッシュされた更新の適用時のエラーに応答する、イベント ハンドラのためにフェッチされていることを示す。 |
dsFilter |
Filter |
データセットは開いている。 フィルタ オペレーションが進行中。データの限定されたセットが表示できるが、どのデータも変更できない。(単方向データセットでは未サポート) |
dsBlockRead |
Block Read |
データセットは開いている。 データ対応コントロールは更新されず、イベントは現在のレコードが変更されても発生しない。 |
dsInternalCalc |
Internal Calc |
データセットは開いている。 OnCalcFields イベントは、レコードに格納されている計算値に対して進行中。(クライアント データセットのみ)。 |
dsOpening |
Opening |
データセットは、開くプロセス中だが、完了していない。この状態は、データセットが非同期フェッチのために開かれようとしている際に発生する。 |
大抵の場合、アプリケーションはデータセットの状態を?して、特定のタスクを実行するかどうかを決定します。たとえば、dsEdit または dsInsert の状態をチェックし、更新を投稿する必要があるかどうかを確認します。
メモ: データセットの状態が変更されるといつでも、OnStateChange イベントは、そのデータセットに関連づけられているデータソース コンポーネントに対して呼び出されます。データソース コンポーネントと OnStateChange の詳細については、「データソースに仲介された変更に応答する」を参照してください。