본문 바로가기

asp

classic asp에서 DB 트랜잭션 처리

<%
    sql = "insert into board(title,contents) values(N'"& title &"', N'"& contents &"')"
    'dbconn.execute(sql)   '주석처리하고 실행 보류

    dbconn.errors.clear
    dbconn.BeginTrans
    dbconn.execute(sql)     '가짜(?) 실행

    if dbconn.errors.count > 0 then
       '에러가 발생했을 경우 트랙잭션 롤백
       dbconn.RollbackTrans   
       
       '이후 자율 처리
       response.end
    else
       dbconn.CommitTrans      '에러가 없다면 진짜 실행
    end if
    
%>

ASP + MSSQL 환경에서는 아직 트랙잭션을 적용해본적은 없지만

작년에 파견나가서 ASP + 오라클 환경에서 작업을 할때

오라클의 clob(mssql의 text필드) 타입의 컬럼에 있는 데이터를 다룰때는

트랙잭션을 안쓰면 문자열이 잘리는 등의 에러가 나서

"반드시" 저렇게 처리해야만 했던 기억이 나네요.

(확실한 원인 파악보다는 오류 처리가 우선이었던 작업이라 정확히 clob 와 트랜잭션 문제였는지는

1년이 지난 지금으로썬 다소 불확실하지만, 확실한건 처음엔 트랜잭션 안쓰고 작업했다가

나중에 소스 전부다 저렇게 바꿨다는거...) 

mssql 환경에서는 꼭 써야할 일은 일반적으론 없다는게 개인적인 생각입니다.