• ベストアンサー

データベースに書き込むときの排他処理

ASP3.0 IIS5.0 ASP初心者です。初心者の素朴な疑問なんですが、 ASPで、例えばWebページから入力された情報を、 Accessなどのデータベースに書き込むとき、 排他処理って必要ですよね? 一般的にどうやるのでしょうか? Application変数を使うのでしょうか? データベース自体に排他制御する機能があるのですか? よろしくお願いします。

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

  • ベストアンサー
  • tamaCo
  • ベストアンサー率66% (47/71)
回答No.1

一般的にはADO ConnectionのTransactionを使うと思います。 On Error Resume Next Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open 接続文字列hoge Conn.BeginTrans Err.Clear Conn.Execute("INSERT INTO hoge VALUES(1, 'aaa')") If Err.Number <> 0 Then Conn.RollBackTrans Else Conn.CommitTrans End If Conn.Close Set Conn = Nothing On Error Goto 0 みたいな感じですかね。 <%@ TRANSACTION=Required %>と記述する方法もありますが、こちらは 使用した事がないので、解答は別の方にお任せします(w

参考URL:
http://www.microsoft.com/japan/developer/library/ado260/mdmthbegintrans.htm
harisun
質問者

お礼

ご回答ありがとうございます。 トランザクションという言葉が私にはいまいち ピンと来ないのですが、 ある一連の処理があって、 それを後から実行またはキャンセルできるものと 考えればいいのでしょうか? 記述していただいたスクリプトは参考になりそうです。 一ヶ所だけ、教えていただきたいのですが、 On Error Goto 0 というのは、 要するにスクリプトを終了する事なのでしょうか? よろしくお願いします。