데이터베이스 처리 단계에서 오류가 발생하면 프로그램이 전체 프로세스를 롤백해야한다는 것을 알고 싶습니다.MFC/C++에 데이터베이스 트랜잭션 메커니즘이 있습니까?
MFC에서 좋은 ORM/C++ 이거?
데이터베이스 처리 단계에서 오류가 발생하면 프로그램이 전체 프로세스를 롤백해야한다는 것을 알고 싶습니다.MFC/C++에 데이터베이스 트랜잭션 메커니즘이 있습니까?
MFC에서 좋은 ORM/C++ 이거?
MFC _ConnectionPtr 개체에는 BeginTrans, CommitTrans 및 RollbackTrans 메서드가 있습니다.
http://msdn.microsoft.com/en-us/library/ms675942(VS.85).aspx
당신이 그것을 포장 할 것, 좋은 생각을 호출하지 것이다.
- RAII-Classes를 사용하여이를 래핑합니다. 생성자는 트랜잭션을 시작하고, 파기 전에 커밋이 적용되지 않으면 소멸자 롤백이 시작됩니다. –
SQL Server, Oracle, PostgreSQL, Firebird, 일부 MySQL 데이터베이스와 같은 트랜잭션 데이터베이스에 연결하는 경우 거래용 API가 있습니다. 마찬가지로 일부 비 -SQL 데이터베이스는 트랜잭션 의미론 및 관련 API (예 : Berkeley DB)를 가지고 있습니다. 당신이 사용하고있는 데이터베이스에 대해 언급하지 않았기 때문에 나는 무엇을 말할 것인가를 정말로 모른다.
이것은 ORM과 아무 관련이 없습니다. 당신이 MFC를 사용하는 경우 그런 다음, 기본 트랜잭션 기능을 당신이 당신의 데이터베이스 중 하나 CDatabase
(ODBC)를 통해 작업하는 가장 가능성이
CDaoWorkspace
/
CDaoDatabase
(DAO) 또는
CDataConnection
/
CSession
(OLE DB). 그렇다면 각각
CDatabase::Rollback
,
CDaoWorkspace::Rollback
또는
CSession::Abort
을 사용해야합니다.
Debea 데이터베이스 라이브러리는 C에 대한 ORM입니다 ++ - http://debea.net/
이 사용중인 데이터베이스에 의존하지 않는다? 예를 들어 액세스는 트랜잭션을 지원하지 않습니다. MySQL은 DB 엔진에 따라 ... C++의 –