0

アプリは最大 10 台のマシンにインストールされ、そのうちの 1 台はサーバーとしても機能します。サーバーと永続的に同期された 1 つの同じ DataGridView が、それらすべてで開かれます。「ユーザー」が異なれば、変更アクセス権も異なります。たとえば、すべてのユーザーがテーブル内の行を削除できますが、行を作成した人だけが行を変更できます。私は現在、SQLite を使用していますサーバ。明らかに、C# のソケット接続機能を使用してクライアントをサーバーに接続する必要があります。問題は、ある時点で、クライアントの 1 つが、その時点で別のクライアントによって変更されている行にアクセス (たとえば、削除) しようとすることです。これにより、多くの問題が発生する可能性があります。私が理解できる限り、データベースのロックと呼ばれる手法があり、これにより、データベースへのクライアント アクセスを制限できます。私の質問は次のとおりです。変更が行われている間、データベースをロックすると便利ですか? たとえば、データベースにアクセスしようとする関数は、データベースを変更できることがわかるまで、(一種のループで) 何度もアクセスを試みます。それはうまくいきますか?より良い解決策はありますか?他のいくつかのデータベースは、複数アクセス用のクエリスタックに似たものを提供しているでしょうか?

私が自分自身を明確にしているのかどうかわかりません。この質問を理解するために他の情報が必要な場合は、コメントしてください。

4

1 に答える 1