이들 트랜잭션 메서드는 아래와 같이 Connection 개체 내의 트랜잭션 프로세싱을 관리합니다.
- BeginTrans는 새 트랜잭션을 시작합니다.
- CommitTrans는 모든 변경 내용을 저장하고 현재 트랜잭션을 끝냅니다. 이 메서드는 트랜잭션을 시작할 수도 있습니다.
- RollbackTrans는 현재 트랜잭션 동안 취해진 모든 변경 내용을 취소하고 이 트랜잭션을 끝냅니다. 이 메서드는 트랜잭션을 시작할 수도 있습니다.
구문
level = object.BeginTrans()
object.BeginTrans
object.CommitTrans
object.RollbackTrans
반환값
BeginTrans는 트랜잭션의 중첩 수준을 나타내는 Long 변수를 반환하는 함수로서 호출될 수 있습니다.
매개 변수
object Connection 개체
Connection
원본 데이터에 한 단위씩 취해진 일련의 변경 내용을 저장하거나 취소하려면 Connection 개체와 함께 이들 메서드를 사용합니다. 예를 들어 두 계좌 사이에 돈을 전송하려는 경우, 한 계좌에서 일정 금액을 인출한 후 다른 계좌에 동일 금액을 추가할 수 있습니다. 이 때 어느 한 쪽이라도 업데이트가 제대로 되지 않으면 계좌 사이의 금액이 균형을 이루지 않습니다. 열린 트랜잭션에서 이러한 변경을 수행하면 이들 변경 내용들이 모두 적용되게 하거나 또는 전혀 적용되지 않게 할 수 있습니다.
메모 모든 제공자가 트랜잭션을 지원하는 것은 아닙니다. Connection 개체의 Properties 컬렉션에 제공자 정의 속성 "Transaction DDL"이 표시되는지 확인하여 해당 제공자에서 트랜잭션이 지원되는지 확인하십시오. 제공자가 트랜잭션을 지원하지 않을 경우에 이들 메서드 중 하나를 호출하면 오류가 발생합니다.
일단 BeginTrans 메서드가 호출되면 제공자는 트랜잭션을 끝내기 위해서 CommitTrans나 RollbackTrans를 호출하기 전에는 어떤 변경도 즉시 수행하지 않습니다.
중첩 트랜잭션을 지원하는 제공자의 경우, 열린 트랜잭션 내에서 BeginTrans 메서드를 호출하면 새로운 중첩 트랜잭션이 시작됩니다. 반환값은 중첩 수준을 표시합니다. 즉, 반환값이 "1"인 경우에는 최상위 트랜잭션(이 트랜잭션은 다른 트랜잭션 내에서 중첩되지 않음)을 열었다는 표시이며, "2"는 둘째 수준의 트랜잭션(최상위 트랜잭션과 중첩된 트랜잭션)을 열었음을 나타냅니다. CommitTrans 또는 RollbackTrans를 호출하면 가장 최근에 열었던 트랜잭션에만 영향을 줍니다. 즉, 다른 상위의 트랜잭션에 영향을 주려면 현재 트랜잭션을 닫거나 롤백해야 합니다.
CommitTrans 메서드를 호출하면 연결 상태의 열린 트랜잭션 내에서 취해진 변경 내용을 저장하고 이 트랜잭션을 닫습니다. RollbackTrans 메서드를 호출하면 열린 트랜잭션 내에서 취해진 모든 변경 내용을 되돌리고 트랜잭션을 닫습니다. 열려 있는 트랜잭션이 없을 때 이들 메서드를 호출하면 오류가 발생합니다.
Connection 개체의 Attributes 속성에 따라 CommitTrans 메서드 또는 RollbackTrans 메서드를 호출하면 자동으로 새 트랜잭션이 시작됩니다. Attributes 속성을 adXactCommitRetaining으로 설정하면 CommitTrans를 호출한 후 제공자가 자동으로 새 트랜잭션을 시작합니다. Attributes 속성을 adXactAbortRetaining으로 설정하면 RollbackTrans를 호출한 후 제공자가 자동으로 새 트랜잭션을 시작합니다.
Remote Data Service
클라이언트 Connection 개체에서는 BeginTrans, CommitTrans 및 RollbackTrans 메서드를 사용할 수 없습니다.
'웹프로그램' 카테고리의 다른 글
JSP 파일 업로드 (0) | 2009.06.09 |
---|---|
JSP 세션을 이용한 카운터 (0) | 2009.06.09 |
JSP DB 연결하기 (0) | 2009.06.09 |
ASP equivalent of PHP's iconv (0) | 2009.06.09 |
자바스크립트에서 confirm() 을 사용할 경우 확인, 취소 로 나오는 버튼을 Yes, No 로 바꾸기 (0) | 2009.05.08 |
CSS 이미지 테두리를 액자처럼 라인 넣어 주기 (0) | 2009.05.04 |
AJAX란? (0) | 2009.04.20 |
자바스크립트 마우스 따라 다니는 이미지 2탄 (0) | 2009.04.17 |