• ベストアンサー

同時編集防止の方法

TakaoPRと申します。 現在、顧客管理リストを作成ようとしているのですが、テーブルへの同時編集の防ぎ方がわかりません。 DBはSQLSERVER2000でプログラムは、VB、ACCESSのどちらかを予定しています。 同時編集の防止というのは、複数が同時に編集できるのを防止したいという意味です。 誰かがテーブルのあるレコードを編集中の場合は、他の人もそのレコードの編集が不可能(閲覧は可能)にしたいのです。それ以外のレコードには、普通にアクセスができるようにしたいと思っています。 以上を実現するためのSQLSERVERの設定、またはプログラム手法などございましたら、ぜひアドバイスをお願いしたいと思っております。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • abayama
  • ベストアンサー率48% (38/79)
回答No.2

通常、同時編集を防ぐには、分離レベルを使用しますが、これでは行単位で同時編集を制御できません。SQL Serverを使用する場合、行単位でロックを掛けるには、SQL文で テーブル名の後に WITH (ROWLOCK) を指定します。 例をいくつか示します。 update stocks.dbo.Fundamentals with (ROWLOCK) set hoge='eee'; select top 10 * from stocks.dbo.Fundamentals with (ROWLOCK); 詳細は、SQL Server Books Onlineを参照してください。

その他の回答 (1)

  • hiro_1999
  • ベストアンサー率31% (86/277)
回答No.1

アクセスですが、簡単に ツール - オプション - 詳細タブ において 共有/排他の設定と、レコードロックの設定が可能です。 ・ロックしない     ・すべてのレコード(編集中のフォーム、関連するデータシートをロック) ・編集済みのレコード(編集中のレコードのみロック) レコードロックの設定は以上の3通り、他のPCからの閲覧はどれも可能です。 参考:ツール - セキュリティ において    ユーザー権限の設定も可能です。 

関連するQ&A