본문 바로가기

Dev/ASP

[ASP] 수동 트랜잭션 모드 또는 분산 트랜잭션 모드에 있기 때문에 연결을 새로 만들 수 없습니다 오류 해결하기

반응형

ASP에서 코딩시 dbCon.BeginTrans / dbCon.BeginTrans / dbCon.CommitTrans 사용할 때

"수동 트랜잭션 모드 또는 분산 트랜잭션 모드에 있기 때문에 연결을 새로 만들 수 없습니다 " 라는 오류가 나올때가 있는데

이 경우는 우리가 DB 연결시 하나의 Connection에 cursorType이 하나의 adOpenForwardOnly 만 사용이 가능하기 때문에 나타나는 오류이다.

상수로는 0을 사용하며 기본적으로 레코드셋 오픈시에 지정하지 않을 경우 Default로 0이 사용된다. 

이 경우에는 앞의 connection을 종료한 후에 새로운 connection연결하던지 cursorType을 다른 것으로 지정해주면

문제 해결이 가능하다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SQL = "SELECT * FROM tblOllagaza"
Set Rs = Server.CreateObject("ADODB.Rcordset")
Rs.Open SQL, dbCon
If Not(Rs.eof) Then
       SQL2 = "SELECT * FROM tblTEST"
       Set Rs2 = Server.CreateObject("ADODB.Recordset")
       Rs2.Open SQL2, dbCon
       If Not(Rs2.eof) Then
              dbCon.RollbackTrans
              Response.end
       End If
End IF
Rs.close
Set Rs = Nothing
 
dbCon.CommitTrans
 
이럴 경우 트랙잭션 오류가 발생할 수 있는데
Rs.Open SQL, dbCon 부분에 Cursortype을 지정해주면 오류를 해결할 수 있다.
===> Rs.Open SQL, dbCon, 1, 1


반응형