다음을 통해 공유


CDatabase::BeginTrans

연결 된 데이터 원본이 트랜잭션을 시작 하려면이 멤버 함수를 호출 합니다.

BOOL BeginTrans( );

반환 값

호출에 실패 한 변경만 수동으로 커밋된 경우 0이 아닌. 그렇지 않으면 0입니다.

설명

하나 이상의 호출 트랜잭션 구성의 AddNew, 편집, 삭제, 및 업데이트 의 멤버 함수는 CRecordset 개체.트랜잭션을 시작 하기 전에 CDatabase 개체 해야 이미 연결한 데이터 소스를 호출 하 여 해당 OpenEx 또는 열려 멤버 함수입니다.트랜잭션을 종료 하려면 호출 CommitTrans 데이터 원본에 모든 변경 내용을 적용 및 읽으면서 하 또는 호출 롤백 전체 트랜잭션을 중단할 수 있습니다.호출 BeginTrans 후 거래에 관련 된 모든 레코드 집합을 열 및로 거의 실제 업데이트 작업 가능한.

주의 정보주의

ODBC 드라이버에 따라 호출 하기 전에 레코드 집합 열기 BeginTrans 를 호출할 때 문제가 발생할 수 있습니다 롤백.사용 중인 특정 드라이버를 확인 해야 합니다.예를 들어, Microsoft ODBC 데스크톱 드라이버 팩 3.0에 포함 된 Microsoft Access 드라이버를 사용 하면 열린 커서에 있는 모든 데이터베이스에서 트랜잭션을 시작할 수 없습니다 Jet 데이터베이스 엔진의 요구를 고려해 야 합니다.MFC 데이터베이스 클래스에서 열린 커서는 열린 의미 CRecordset 개체입니다.자세한 내용은 기술 참고 68.

BeginTrans 요청 된 동시성 및 데이터 원본의 기능에 따라 서버에서 데이터 레코드도 잠글 수 있습니다.데이터 잠금에 대 한 정보는 문서를 참조 하십시오. 레코드 집합: 레코드 잠금 (ODBC).

문서에서 설명 되는 사용자 정의 트랜잭션 트랜잭션 (ODBC).

BeginTrans 를 트랜잭션 시퀀스 수 있습니다 될 롤백되 상태 설정 (역방향).롤백에 새로운 상태를 설정할 수 있는 현재 트랜잭션 커밋 다음 호출 BeginTrans 다시.

주의 정보주의

CommitTransRollback을 호출하지 않고 BeginTrans를 다시 호출하면 오류가 발생합니다.

호출 된 CanTransact 멤버 함수 드라이버를 지정한 데이터베이스에 대해 트랜잭션을 지원 하는지 확인 합니다.또한 호출 해야 GetCursorCommitBehaviorGetCursorRollbackBehavior 커서 보존에 대 한 지원을 확인 합니다.

트랜잭션에 대 한 자세한 내용은 트랜잭션 (ODBC).

예제

참고 트랜잭션: 거래를 하 고 있는 레코드 집합 (ODBC에서).

요구 사항

헤더: afxdb.h

참고 항목

참조

CDatabase 클래스

계층 구조 차트

CDatabase::CommitTrans

CDatabase::Rollback

CRecordset::CanTransact