본문 바로가기
웹관련/ASP

[ASP] DB ROLLBACK / ASP 트랜잭션처리

by 착한덕환 2017. 12. 18.



asp에서 db.execute 중 오류가 발생시에 롤백하는 부분입니다.


DB.Errors.clear


DB.BeginTrans '트랜잭션 시작

DB.Execute (SQL) 'Execute 

  

if DB.Errors.count>0 Then

   DB.RollbackTrans '에러가 발생한다면 트랜잭션 롤백시킨다.

   Set objError = Server.CreateObject("ADODB.Error")

   for each objError in DB.Errors

        Msg (objerror.Description)  '에러문 출력

   Next

   objError.close

   Set objError=Nothing

Else

   DB.CommitTrans '에러없이 진행한다면 트랜잭션 Commit 시킨다.

End if



[예시부분]

    sql = "insert into board(title,contents) values(N'"& title &"', N'"& contents &"')"

    'db.execute(sql)   '주석처리하고 실행 보류

 

    db.errors.clear

    db.BeginTrans

    db.execute(sql)     '가짜(?) 실행

 

    if db.errors.count > 0 then

       '에러가 발생했을 경우 트랙잭션 롤백

       db.RollbackTrans  

        

       '이후 자율 처리

       response.end

    else

       db.CommitTrans      '에러가 없다면 진짜 실행

    end if


이렇게 하면 에러난 상황에서 임의에 데이터가 DB로 들어가는부분을 막을수 있습니다.


ASP 기초적인 부분이지만 자료가 많이 없기 때문에 작성합니다 ^^

댓글