コントロールのデータを編集する

提供:RAD Studio (日本語)
移動: 案内, 検索

データコントロールの使い方:インデックス への移動

データコントロールがその編集結果を関連するデータセットに登録できるのは,データセットの CanModify プロパティが True になっている場合だけです。単方向データセットの場合には,CanModify は常に False になります。クライアントデータセットには ReadOnly プロパティがあり,これを使用すれば,CanModifyTrue にするかどうかを指定できます。

メモ:  クライアントデータセットがデータを更新できるかどうかは,基になるデータベーステーブルが更新を許可しているかどうかで決まります。

データセットの CanModify プロパティが true になっている場合でも,コントロールが更新をデータベーステーブルに登録できるようにするためには,データセットをコントロールに接続しているデータソースの Enabled プロパティも true にしなければなりません。データソースの Enabled プロパティは,コントロールがそのデータセットの項目値を表示できるかどうか,またユーザーがその値を編集し登録できるかどうかを決めます。EnabledTrue の場合(デフォルト),コントロールは項目値を表示できます。

最後の点として,コントロールに表示されているデータをユーザーが編集できるかどうかを制御することも可能です。データコントロールの ReadOnly プロパティは,そのコントロールによって表示されたデータをユーザーが編集できるかどうかを決めます。False の場合(デフォルト),ユーザーはデータを編集できます。当然ながら,データセットの CanModifyfalse にした場合には,コントロールの ReadOnly プロパティが true になっていることを確認しておいてください。そうしておかないと,ユーザーは,基のデータベーステーブルのデータを変更できるものと誤って解釈するでしょう。

TDBGrid を除くすべてのデータコントロールでは,項目を変更した場合,〔Tab〕でコントロールから離れるときに基のデータセットに変更がコピーされます。〔Tab〕で項目から移動する前に〔Esc〕を押すと,変更が破棄され,項目の値は変更前の値に戻ります。

DBGrids.TDBGrid では,別のレコードに移動したときだけ変更が登録されます。別のレコードに移動する前に項目のレコードで〔Esc〕を押すと,レコードに対するすべての変更を取り消せます。

レコードを登録するときに,データセットに関連付けられたすべてのデータベース対応コントロールの状態の変化が調べられます。変更のあるデータを含む項目を更新するときに問題が発生すると,例外が生成されて,レコードへの変更は行われません。

メモ:  アプリケーションが更新をキャッシュする場合(たとえば,クライアントデータセットを使用する場合)には,変更はすべて内部キャッシュに登録されます。これらの変更は,データセットの ApplyUpdates メソッドを呼び出すまでは,基のデータベーステーブルには適用されません。

関連リンク

他言語版