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

マルチユーザー処理

環境/言語:[XP,VB.NET]
分類:[.NET]

Try
oleCmd=New OleDb.OleDbCommand("UPDATE 顧客マスタ" & _
" SET NAME='山田 太郎' WHERE CODE=99",oleCn)
oleCmd.ExecuteNonQuery()
Catch ex As Exception
MessageBox.show(ex.Message,"UPDATE")
End Try

1.ユーザーA CODE=99のレコードを取り出す
2.ユーザーB 同じレコードを取り出す
3.ユーザーA CODE=99のレコードを削除
4.ユーザーB 上記の内容で更新を行う

マルチユーザーでOleDbCommandオブジェクトのExecuteNonQueryメソッドを使用して
レコードを更新しようとした場合、更新が成功したのか
失敗したのかがわかりません。
どなたかよい方法を教えていただけませんか?
  • 題名: Re[1]: マルチユーザー処理
  • 著者: こど。
  • 日時: 2004/04/21 21:40:16
  • ID: 3772
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
4の処理でExecuteNonQueryをした際に返り値を受け取れば、
そのSQLで「影響を受けた行数」を返しているはずなので、
質問の意味では、結果の行数が0だったら失敗と判断すればよいと思います。

(個人的には「早い者勝ちで、かつ、楽観」の処理は好きではないですが。)
■No3766に返信(ぽちさんの記事)
> Try
> oleCmd=New OleDb.OleDbCommand("UPDATE 顧客マスタ" & _
> " SET NAME='山田 太郎' WHERE CODE=99",oleCn)
> oleCmd.ExecuteNonQuery()
> Catch ex As Exception
> MessageBox.show(ex.Message,"UPDATE")
> End Try
>
> 1.ユーザーA CODE=99のレコードを取り出す
> 2.ユーザーB 同じレコードを取り出す
> 3.ユーザーA CODE=99のレコードを削除
> 4.ユーザーB 上記の内容で更新を行う
>
> マルチユーザーでOleDbCommandオブジェクトのExecuteNonQueryメソッドを使用して
> レコードを更新しようとした場合、更新が成功したのか
> 失敗したのかがわかりません。
> どなたかよい方法を教えていただけませんか?


ExecuteNonQuery の戻り値で選択・更新・削除されたレコード数を取得できます
のでそれで判断されてはどうでしょうか?
後は、排他処理を行ったほうがいいですね
■No3773に返信(もさんの記事)
> ■No3766に返信(ぽちさんの記事)
>>Try
>> oleCmd=New OleDb.OleDbCommand("UPDATE 顧客マスタ" & _
>> " SET NAME='山田 太郎' WHERE CODE=99",oleCn)
>> oleCmd.ExecuteNonQuery()
>>Catch ex As Exception
>> MessageBox.show(ex.Message,"UPDATE")
>>End Try
>>
>>1.ユーザーA CODE=99のレコードを取り出す
>>2.ユーザーB 同じレコードを取り出す
>>3.ユーザーA CODE=99のレコードを削除
>>4.ユーザーB 上記の内容で更新を行う
>>
>>マルチユーザーでOleDbCommandオブジェクトのExecuteNonQueryメソッドを使用して
>>レコードを更新しようとした場合、更新が成功したのか
>>失敗したのかがわかりません。
>>どなたかよい方法を教えていただけませんか?
>
>
> ExecuteNonQuery の戻り値で選択・更新・削除されたレコード数を取得できます
> のでそれで判断されてはどうでしょうか?
> 後は、排他処理を行ったほうがいいですね

かぶりました。ごめんなさい。
こどさん、もさんどうもありがとうございました。
後は、排他処理を行ったほうがいいと言うことですが、
申し訳ありませんが、具体的どのように行うか教えてもらえないでしょうか?

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