DOBON.NET DOBON.NETプログラミング掲示板過去ログ

排他制御

  • 題名: 排他制御
  • 著者: ぽち
  • 日時: 2004/04/28 16:27:42
  • ID: 3854
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[XP]
分類:[.NET]

1.ユーザーAがレコードを取り出す
2.ユーザーBが同じレコードを取り出す
3.ユーザーAがレコードを変更または削除し、データベースを更新
4.ユーザーBがレコードを変更し、データベースを更新しようとした時
  他のユーザーにより変更または削除があったことを通知し、更新を中止する

上記のような処理をTimestampを使わずAccessのデータベースエンジンであるJetで
行いたいのですが、よい方法を教えていただけませんか?
最新操作優先の処理でなければ、上記以外の方法でもかまいません。
  • 題名: Re[1]: 排他制御
  • 著者: mor
  • 日時: 2004/04/29 1:23:48
  • ID: 3859
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No3854に返信(ぽちさんの記事)
> 1.ユーザーAがレコードを取り出す
> 2.ユーザーBが同じレコードを取り出す
> 3.ユーザーAがレコードを変更または削除し、データベースを更新
> 4.ユーザーBがレコードを変更し、データベースを更新しようとした時
>   他のユーザーにより変更または削除があったことを通知し、更新を中止する
>
> 上記のような処理をTimestampを使わずAccessのデータベースエンジンであるJetで
> 行いたいのですが、よい方法を教えていただけませんか?
> 最新操作優先の処理でなければ、上記以外の方法でもかまいません。

ADO.NETを使うということを前提に考えれば、更新処理を Transactionオブジェクトを使って行い、更新がうまくいけば Commit 失敗すれば Rollback を行うようにすればうまく行きそうな気がします。

DOBON.NET | プログラミング道 | プログラミング掲示板