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 기초적인 부분이지만 자료가 많이 없기 때문에 작성합니다 ^^
'웹관련 > ASP' 카테고리의 다른 글
[ASP] 데이터 타입별 데이터 타입 정리 (0) | 2018.11.09 |
---|---|
[ASP] 다국어 ASP 제작시 주의사항 (0) | 2018.04.04 |
[ASP] On Error Resume Next 를 사용한 에러처리방법 (0) | 2017.07.21 |
[ASP] ASP배열 (0) | 2016.11.18 |
[ASP] ServerVariables 함수 알아보기 (0) | 2016.11.14 |
댓글