웹프로그래밍이나 일반 프로그래밍에서
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 빨강토끼
,
일단 클래스의 속성중에 Instancing 속성을 5 - MultiUse 로 변경하고
프로젝트 속성에서 스레딩 모델 을 아파트 스레드 로 변경해야합니다.



서버 개체 error 'ASP 0178 : 80070005'

Server.CreateObject 액세스 오류

/contents/ta001/ta001Main.asp, line 10

사용 권한을 확인하는 동안Server.CreateObject 호출이 실패했습니다. 이 개체를 액세스할 수 없습니다

이경우에는 Instancing 속성을 변경하지 않은경우이고




'(null)'의 개체를 만드는데 예외 C0000005이(가) 생겼습니다
서버 개체 error 'ASP 0177 : c0000005' 

Server.CreateObject 실패 

D:CLEVERISLANDSUBSCRIPTION../INCLUDEs/subp_sub_process.asp, line 536 

c0000005 

이라는 에러가 생겼을 경우 서버에 VB 가 깔려있지 않는경우입니다.
그렇다고 구지 서버에 VB를 깔필요는 없고
패키지 마법사에서 설치화일로 만들어서
서버에서 설치를 하게되면 필요한 비베관련 DLL을 원만큼 깔아줍니다.
정확히 좋은 방법인지는 솔찍히 모르겠지만(오히려 가장최선의 방법일수도 있고...)
이게 나름데로 제일 간단한 방법입니다.
Posted by 빨강토끼
,