トップ回答者
Visual studio2010 C# DB 複数ユーザー

質問
回答
-
こんにちは。
trapemiyaさんが仰っているように選定基準をもう少し提示して他の案も募集したほうが良いと思います。
サーバーアプリケーションをインストールしないのであればファイル共有の形しかないでしょうから、MDBとかが案になると思います。
サーバーへのAccessインストールは不要です。
SQLServerのデータベースファイルは複数のSQLServerExpressから同時にアタッチ出来るのでしょうか?試したことがないです。
lockステートメントはトランザクション制御を行うものではなく1つのプロセス内の複数スレッド間でロックを行うためのものですので用途が異なります。
MDBは排他モードがありますので排他制御に使えるかもしれません。 -
SQL Serverをインストールすると、1つのSQL Severができます。これを1つのインスタンスと言います。インスタンスはインスタンス名を変えて複数インストールすることができます。例えば、SQL Server 2008 R2と、SQL ServerのExpress版はインスタンス名を変えて共存できます。つまり、追加でSQL ServerのExpress版等をインストールすることができます。
また、1つのSQL Serverには複数のデータベースを作成することができます。例えば、現在お使いのSQL Server 2008 R2に何かしらのデータベースがあり、それを現在稼働しているソフトが使っているのであれば、それとは別にこれから開発するソフト専用のデータベースを作成することができます。このように、1つのSQL Serverに複数のソフト専用のデータベースを作成することができます。
もし、上記のことが解決できるのであれば、排他等、SQL Serverを用いた方が一般的に圧倒的に楽ですので、SQL Serverについてもう少し深く、調査、検討することをお勧めします。
★良い回答には回答済みマークを付けよう! MVP - .NET http://d.hatena.ne.jp/trapemiya/
- 編集済み trapemiyaModerator 2016年4月26日 3:05 言い回しを変更
- 回答の候補に設定 星 睦美 2016年5月10日 4:55
- 回答としてマーク 星 睦美 2016年5月31日 1:46
-
サーバーにデータを置き、複数ユーザーからの更新することを考えるなら、競合の問題と、自分が編集中のデータが他のユーザーに上書きされないようトランザクションについて考慮すべきです。
#あえて易しそうな解説選んでみました
データベースは何もSQL Server だけではありません。MySQL や PostgreSQL というオープンソースでかつ堅牢なシステムを構築できるデータベースもあります。私はここ数年、VB/C# & MySQL のプロジェクトに携わってますが、MySQL用のデータプロバイダも Nuget で簡単に手に入るし、ライブラリの使い方も ADO.NET に準拠してるので、コーディングも苦になりません。
むしろ、データを、どこに、どのような形で格納するのか、
またデータを如何に矛盾なく整合性の取れた形で保持するのか
さらに格納されたデータを如何に高速に抽出するか
日々悩む毎日ですw
本フォーラムは、ユーザー(開発者)同士で情報交換を行うためのコミュニティです。初めて利用される方は、以下のアナウンスをご覧ください。 https://social.msdn.microsoft.com/Forums/ja-JP/ca9ecfb7-4407-4fcb-b8bd-207d68257e68?
すべての返信
-
使用を予定しているサーバーには既にSQLサーバー2008R2が存在しており、他のソフトで利用しております。
設定すれば使用できるのかわかりませんが、初心者なもので構成の仕方がわかりません。
そのため、MDBであればファイルを配置するだけで済むのでは
ないかと考えました。
- 編集済み A_M_Scofield 2016年4月26日 2:52
-
こんにちは。
trapemiyaさんが仰っているように選定基準をもう少し提示して他の案も募集したほうが良いと思います。
サーバーアプリケーションをインストールしないのであればファイル共有の形しかないでしょうから、MDBとかが案になると思います。
サーバーへのAccessインストールは不要です。
SQLServerのデータベースファイルは複数のSQLServerExpressから同時にアタッチ出来るのでしょうか?試したことがないです。
lockステートメントはトランザクション制御を行うものではなく1つのプロセス内の複数スレッド間でロックを行うためのものですので用途が異なります。
MDBは排他モードがありますので排他制御に使えるかもしれません。 -
SQL Serverをインストールすると、1つのSQL Severができます。これを1つのインスタンスと言います。インスタンスはインスタンス名を変えて複数インストールすることができます。例えば、SQL Server 2008 R2と、SQL ServerのExpress版はインスタンス名を変えて共存できます。つまり、追加でSQL ServerのExpress版等をインストールすることができます。
また、1つのSQL Serverには複数のデータベースを作成することができます。例えば、現在お使いのSQL Server 2008 R2に何かしらのデータベースがあり、それを現在稼働しているソフトが使っているのであれば、それとは別にこれから開発するソフト専用のデータベースを作成することができます。このように、1つのSQL Serverに複数のソフト専用のデータベースを作成することができます。
もし、上記のことが解決できるのであれば、排他等、SQL Serverを用いた方が一般的に圧倒的に楽ですので、SQL Serverについてもう少し深く、調査、検討することをお勧めします。
★良い回答には回答済みマークを付けよう! MVP - .NET http://d.hatena.ne.jp/trapemiya/
- 編集済み trapemiyaModerator 2016年4月26日 3:05 言い回しを変更
- 回答の候補に設定 星 睦美 2016年5月10日 4:55
- 回答としてマーク 星 睦美 2016年5月31日 1:46
-
サーバーにデータを置き、複数ユーザーからの更新することを考えるなら、競合の問題と、自分が編集中のデータが他のユーザーに上書きされないようトランザクションについて考慮すべきです。
#あえて易しそうな解説選んでみました
データベースは何もSQL Server だけではありません。MySQL や PostgreSQL というオープンソースでかつ堅牢なシステムを構築できるデータベースもあります。私はここ数年、VB/C# & MySQL のプロジェクトに携わってますが、MySQL用のデータプロバイダも Nuget で簡単に手に入るし、ライブラリの使い方も ADO.NET に準拠してるので、コーディングも苦になりません。
むしろ、データを、どこに、どのような形で格納するのか、
またデータを如何に矛盾なく整合性の取れた形で保持するのか
さらに格納されたデータを如何に高速に抽出するか
日々悩む毎日ですw
本フォーラムは、ユーザー(開発者)同士で情報交換を行うためのコミュニティです。初めて利用される方は、以下のアナウンスをご覧ください。 https://social.msdn.microsoft.com/Forums/ja-JP/ca9ecfb7-4407-4fcb-b8bd-207d68257e68?