9

データベース内の特定のテーブルの内容がいつ変更されたかどうかを知ることはできますか?SQL Serverは、データが別のユーザーによって変更されたことをクライアントアプリケーションに通知するにはどうすればよいですか?dbGoでクエリ通知を実装する方法は?

クライアントはデータベースをポーリングする必要がありますか、それともこのためのコールバックメカニズムがありますか?

私のクライアントは、を使用したDelphiアプリケーションでTADODataSetあり、サーバーはSQL Server 2005/2008であり、複数のクライアントにサービスを提供しています。

4

2 に答える 2

6

コントロールはDelphi dbGoをサポートしていないためQuery Notifications、データベースをポーリングするか、次のいくつかを確認してみてください。

于 2012-05-18T13:24:46.233 に答える
1

いいえ、これを行うには、独自の「中間層」を構築する必要があります。最も簡単な方法は、サーバーをポーリングすることです。より複雑な解決策は、データベースをポーリングし、クライアントに通知をプッシュする独自の「中間層」サーバーを構築することです(独自のクライアント接続を使用)。

中間的な解決策は、サーバー上の別のクライアントに、「監視」する必要のあるテーブルをポーリングさせ、クライアントがポーリングできる別のデータベーステーブルに「通知フラグ」を書き込むことです。少なくともこの方法で、クライアントは、変更されたものをリストする最小限のデータを使用して単純なテーブルをポーリングし、別の選択クエリで読み取ることができます。クライアント側の労力が大幅に軽減されます。

于 2012-05-18T13:47:00.373 に答える