IBM AS/400과 연동되는 웹서비스 프로그래밍 도중
VB6.0과 ADO로 작성한 DB Handling COM에서 트랜잭션을 걸었을 시
NOT VALID OPERATION FOR [TABLE NAME]의 에러가 리턴되는 문제가 발생했습니다.
여느 ADO 프로그래밍과 마찬가지로
FUNCTION SET_DATA(ByVal strSQLQuery As String, ByRef ErrMsg As Variant) As Boolean
Dim objRS As ADODB.RecordSet
ON ERROR GO TO SET_DATA_ERROR
objCONN.BeginTrans
'INSERT PROCESS
Set objRS = objCONN.Execute(strSQLQuery, lngRSAffected)
If lngRSAffected = 0 Then
SET_DATA = False
Go To SET_DATA_ERROR
End If
objCONN.CommitTrans
SET_DATA = True
SET_DATA_EXIT:
SET objRS = NOTHING
EXIT FUNCTION
SET_DATA_ERROR:
objCONN.RollbackTrans
Goto SET_DATA_EXIT
END FUNCTION
이런 형태로 작성을 하였고, 단계별 실행 디버깅에서 objCONN.BeginTrans까지는 에러 발생없이
돌아가다가 Set objRS = objCONN.Execute(strSQLQuery, lngRSAffected) 이 구문에서
Not Valid Operation 이라는 류의 에러 메시지가 뜹니다.
ODBC 세팅에서 Read Committed, Repeatable Read 등과 같은 트랜잭션 관련 설정등을 바꿔봤지만
도통 먹히지가 않습니다.
ADO의 Recordset의 AddNew / Update 메소드를 이용해봤지만 해당 메소드들도 먹지를 않더군요.
혹시 비슷한 경험을 해보셨고, 해결하신분들이 계시면 부디 도움을 주십시오.
감사합니다. |