sub_title
 ASP
제   목 ASP 트랜잭션(Transaction) 처리
작성자 다자래 등록일 2007-08-17 21:38:45 조회수 221,603

[ASP 트랜잭션(Transaction) 처리]

트랜잭션 처리를 위한 ASP용 짧은 예제입니다.
테이블은 트랜잭션 테스트용으로 Test01, Test02 라는 이름의 작은 테이블 두개를 만들었습니다.
이렇게 짧은 테이블로만 개발 할 수 있으면 정말 좋겠습니다^^.

Test01 Test02
Create table test01 (
mem_uid varchar(20) not null,
idate datetime not null
);
Create table test04 (
memuid varchar(20) not null,
point int not null,
idate datetime not null
);

아래는 이 두개의 테이블을 이용해서 트랜잭션 처리를 하는 짧은 소스입니다.
On Error Resume Next를 사용해서 데이타베이스에서 출력하는 에러문은 지나치게 하고 Rollback이 발생했을때 에러문이
출력됩니다.

아래 소스에서는 Test02 테이블에 데이타 Insert 과정에서 point 값이 생략됨으로 에러가 발생하게 됩니다.

<!--#include file="dbconnect/dbconnect.asp"-->
<OBJECT RUNAT=server PROGID=ADODB.Connection ID=db></OBJECT>
<%

tblname1 = "test01" '트랜잭션에 사용될 테스트용 테이블1입니다."
tblname2 = "test02" '트랜잭션에 사용될 테스트용 테이블2입니다."
memuid = "webmadang.net" '사용자아이디


Dim dberr
dberr = 0

On Error Resume Next
db.begintrans()

sql = "insert into " & tblname1 & " ( memuid, idate ) values ('"&memuid&"',getdate())"
db.execute(sql)
dberr = dberr + db.errors.count


sql = "insert into " & tblname2 & " ( memuid, idate ) values ('"&memuid&"', getdate())"
db.execute(sql)
dberr = dberr + db.errors.count

If dberr > 0 Then
db.rollbacktrans()
db.close
response.write "<center><br><br>회원가입 처리중 에러가 발생 했습니다."
response.write "에러:<br><br><font color='red'>"&Err.Description&"</font>"
response.write "<br><br>위의 에러 내용을 사이트관리자에게 문의하여 주시기 바랍니다.</center>"
Err.close()
Response.end
Else
db.committrans()
response.write "회원가입되셨습니다."
End if

db.Close
%>

아래 그림은 Rollback시 출력되는 화면입니다. 화면 출력후 test01 테이블과 test02 테이블을 확인해 보면 정확히
RollBack 되어 있음을 알수 있습니다.

 

 

작성자: 다자래(mfcchang@naver.com)
웹제작 토탈 커뮤니티 http://www.webmadang.net

 
0
    
 
0
        list
 
※ 짧은 댓글일수록 예의를 갖추어 작성해 주시기 바랍니다.
line
reply cancel
 
번호 제목 글쓴이 추천 조회 날짜
6  DateDiff 함수를 이용한 경과시간 체크하기   member 다자래 0 / 1 208173 2007-08-20
5  파일(File) 읽기   member 다자래 0 / 0 205431 2007-08-20
4  On Error Resume Next를 이용한 에러처리   member 다자래 0 / 0 209827 2007-08-17
3  ASP 트랜잭션(Transaction) 처리 이미지   member 다자래 0 / 0 221603 2007-08-17
2  global.asa를 이용한 사이트 접속 카운터 예제   member 다자래 0 / 0 206166 2007-08-16
1  난수를 이용한 쿠폰번호(알파벳+숫자) 생성  [6] member 다자래 1 / 0 215429 2007-08-14
write
button [1] [2] [3]