웹프로그래밍이나 일반 프로그래밍에서
db 트랜잭션을 통하여(BeginTrans, rollBackTrans, commitTrans 등)
만일 에러가 생기면 롤백을 하고 아니면 커밋을 하는 프로그래밍을 하고자 합니다.

이때 분명 트랙잭션 프로그래밍을 했는데 에러메시지를 나타내며 트랙젝션이 되지
않는 경우가 99%입니다.

on Error resume next

문제는 이것을 맨처음에 넣어주어야됩니다.

db에러가 나면 당연히 에러상태가되고 트랜잭션이고 머고 없습니다.

위와 같은 코드를 넣어주면 에러가 나도 에러상태를 유지하면서 다음 단계로
주욱 실행해 나가게 되고 최종단에서 rollBackTrans 를 실행하게 됩니다.

간단한 예제 코드입니다.

on Error resume next

set adoCn=server.CreateObject("ADODB.Connection")
adoCn.open strConnect
adoCn.BeginTrans
adoCn.Execute strSQL

if adoCn.errors.count>0 then
  adoCn.rollBackTrans
else
  adoCn.commitTrans
end if

set adoCn=nothing


만일 위에 것이 안된다고 하면
If db.Errors.Count <> 0 Then 을
If Err.number <> 0 then 이것으로 바꿔보세요.


아래는 참조입니다.

분산 트랙잭션 오류입니다.(0x8004D00A)   
Posted by 빨강토끼
,