BDE を使用した更新情報のキャッシュ

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

BDE を使用した更新情報のキャッシュ:インデックス への移動

メモ: BDE(Borland Database Engine)は非推奨になったため、今後は機能強化されません。たとえば、BDE では Unicode はサポートされません。BDE を使用して新たに開発しないことをお勧めします。既存のデータベース アプリケーションを BDE から dbExpress に移行することを検討してください。BDE から dbExpress への移行についての詳細は、http://www.embarcadero.com/rad-in-action/migration-upgrade-center を参照してください。

更新情報をキャッシュするために推奨されているのは、クライアント データセット(TBDEClientDataSet)を使用する方法と、データセット プロバイダを使って BDE 対応データセットをクライアント データセットに接続する方法です。クライアント データセットを使う方法の利点については、「クライアント データセットを利用した更新のキャッシュ」で説明しています。

ただし、単純な場合には、BDE を使って更新情報をキャッシュすることもできます。BDE 対応データセットと TDatabase コンポーネントには、キャッシュされた更新情報を処理するためのプロパティやメソッドやイベントが組み込まれています。そのほとんどは、クライアント データセットを使って更新情報をキャッシュする場合にクライアント データセットやデータセット プロバイダで使用する、プロパティやメソッドやイベントと直接対応しています。そのプロパティ、イベント、メソッドと、それに対応する TBDEClientDataSet のプロパティ、メソッド、イベントを、以下の表に示します。

キャッシュされた更新情報のプロパティ、メソッド、イベント

BDE 対応データセット(または TDatabase) TBDEClientDataSet 用途

CachedUpdates

クライアント データセットの場合には常に更新情報がキャッシュされるため不要。

そのデータセットで更新情報のキャッシュが有効かどうかを判定します。

UpdateObject

BeforeUpdateRecord イベント ハンドラを使用。TClientDataSet を使っている場合には、BDE 対応ソース データセットの UpdateObject プロパティを使用。

読み取り専用データセットを更新するための更新オブジェクトを指定します。

UpdatesPending

ChangeCount

データベースに適用する必要がある更新済みのレコードがローカル キャッシュに含まれているかどうかを示します。

UpdateRecordTypes

StatusFilter

キャッシュされた更新情報を適用するときに公開する更新済みレコードの種類を示します。

UpdateStatus

UpdateStatus

レコードが変更なし、変更済み、挿入済み、削除済みのどの状態であるかを示します。

Bde.DBTables.TBDEDataSet.OnUpdateError

Datasnap.DBClient.TClientDataSet.OnReconcileError

レコード単位で更新エラーを処理するイベントです。

Bde.DBTables.TBDEDataSet.OnUpdateRecord

該当なし

レコード単位で更新を処理するイベントです。

ApplyUpdates(データベース)

ApplyUpdates

ローカル キャッシュ内のレコードをデータベースに適用します。

CancelUpdates

CancelUpdates

すべての保留中の更新情報を、適用せずにローカル キャッシュから削除します。

CommitUpdates

Reconcile

更新情報を正常に適用した後に更新キャッシュをクリアします。

FetchAll

GetNextPacket(および PacketRecords

編集や更新を行えるようデータベース レコードをローカル キャッシュにコピーします。

RevertRecord

RevertRecord

現在のレコードに対する更新情報がまだ適用されていなければ取り消します。



キャッシュを使った更新処理の概要は、「キャッシュ アップデートの使い方の概要」を参照してください。

以下のトピックでは、BDE を使って更新情報をキャッシュする方法をさらに詳しく説明しています。

メモ: クライアント データセットを使って更新情報をキャッシュしている場合でも、更新オブジェクトについてのセクションが参考になることがあります。TBDEClientDataSetTDataSetProviderBeforeUpdateRecord イベント ハンドラで更新オブジェクトを使用して、ストアド プロシージャや複数テーブルのクエリの更新を適用することができます。

関連項目