- ベストアンサー
同時編集防止の方法
TakaoPRと申します。 現在、顧客管理リストを作成ようとしているのですが、テーブルへの同時編集の防ぎ方がわかりません。 DBはSQLSERVER2000でプログラムは、VB、ACCESSのどちらかを予定しています。 同時編集の防止というのは、複数が同時に編集できるのを防止したいという意味です。 誰かがテーブルのあるレコードを編集中の場合は、他の人もそのレコードの編集が不可能(閲覧は可能)にしたいのです。それ以外のレコードには、普通にアクセスができるようにしたいと思っています。 以上を実現するためのSQLSERVERの設定、またはプログラム手法などございましたら、ぜひアドバイスをお願いしたいと思っております。 宜しくお願い致します。
- みんなの回答 (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)
アクセスですが、簡単に ツール - オプション - 詳細タブ において 共有/排他の設定と、レコードロックの設定が可能です。 ・ロックしない ・すべてのレコード(編集中のフォーム、関連するデータシートをロック) ・編集済みのレコード(編集中のレコードのみロック) レコードロックの設定は以上の3通り、他のPCからの閲覧はどれも可能です。 参考:ツール - セキュリティ において ユーザー権限の設定も可能です。