2009-08-25 3 views
0

私はデータベースからの情報を表示するリストを持つフォームを持っています。私は、データベース内の何かが変更されるたびに、リストを実行時(またはほぼリアルタイム)に更新したい。これは私がこれを達成するために考えることができる3つの方法です:Webサーバー上のアクセステーブルが変更されるたびにWindowsフォームクライアントを更新するにはどうすればよいですか?

クライアントにタイマーを設定して数秒ごとに確認します:これを行う方法はわかっていますが、これを行う方法はわかっていますが、データベースに何か変更があったかどうかにかかわらず、何百回もデータベースを更新する TCP/IPチャットサーバーのようなものを構築し、プログラムがデータベースを更新するたびにTCP/IPサーバーにメッセージを送信します。ターンはクライアントのフォームにメッセージを送ります:今はこれをどうするのかわかりません テーブルが最後に変更された日時を返すWebサービスを作成し、クライアントはその時間を前回クライアントが更新されました:Webサービスを構築する方法を理解できましたが、とにかくデータベース 2番目のオプションは非常に信頼できるとは思われません。最初は、必要以上に多くのリソースを消費するようです。数秒ごとに接続を行わずにデータベースに変更があるたびにクライアントに通知する方法はありますか、それともデータベースに多くの接続を確立するのはそれほど大したことではありませんか?

答えて

0

私は接続プールがこれを問題にしないと思います。あなたのデータベースによっては、おそらく気付かないでしょう。

0

データベースを更新していますか?または、外部ソースから更新が行われていますか?

一般的に、1時間に何百回も更新するとDBを邪魔することはありません。かなり遅いEven Accessは、パフォーマンスの問題を引き起こしません。

実際に最適化してデータの更新を行っている場合は、ここをクリックしてください。 LastUpdateTimeと呼ばれるサーバー側にアプリケーション変数を格納します。データベースを更新するときに、LastUpdateTime変数を現在の時刻で更新できます。 LastUpdateTimeはサーバーメモリ内の非常に軽量なオブジェクトなので、クライアントはデータベースへのラウンドトリップなしで、何百回もなくても何百回もの最後の更新時間を技術的に要求できます。クライアントが新しい情報を最後に取得した時間とサーバーの最後の更新時間に基づいて、更新された情報を取得できます。

関連する問題