2009-09-21 10 views
0

私はデータベースを呼び出し、コンボボックスで使用するためにオブジェクトの配列にデータを取り込む高価な操作をしています。 〜2分かかるので、起動時にキャッシュします。DBキャッシュが最新であることを確認するにはどうすればよいですか?

ユーザーがこれらのコンボボックスを使用する必要がある場合は、そのコンボボックスに現在のデータがあることを確認する必要があります。これどうやってするの?

答えて

1

私はデータの変更がかなり頻繁に起こると推測します。その場合、私はINSERTUPDATEまたはDELETEのトリガを作成し、いくつかのスクラッチパッドに格納されたチェックサム/ CRCを計算します。この1つの値を取得してリストボックスを作成し、この値と比較します。これは、データが変更されたかどうかを示す良い指標となります。

もっと簡単な解決策は、チェックサムではなく最後の更新の日付/時刻を保存することです。

1つのアプリケーションでは、IsActiveとLastUpdateという2つの列をテーブルに追加しました。 IsActiveは、レコードを完全に削除する代わりに使用されます。 LastUpdateは、各レコードが最後に更新された時刻を示すタイムスタンプです。 SELECT WHERE LastUpdate > '<your-previous-check>'には、適用する必要がある変更の一覧が表示されます。

+0

ただし、データベースは複数のユーザーによって変更されることがあります。 – Malfist

+0

@Malfist - タイムスタンプとルックアップコード/値のリストを持つクラスを作成するとします。起動時に、リストをロードして現在の時刻を使用します。後でキャッシュのタイムスタンプでprocを呼び出すことができます。また、データベースのタイムスタンプが送信された時間の後であれば、新しいループアップリストが返されます。 – overslacked

+0

、ルックアップリスト。 – overslacked

関連する問題