자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi FireDac Transaction 문의
2021.04.19 13:54
Firedac 에서 Transaction 은 어떤 방법으로 사용하는게 정상인가요?
Commit, Rollback 을
TFDConnection 을 이용하는 방법과 TFDTransaction 을 이용하는 방법에는 어떤 차이가 있나요?
그리고 두가지 중 어떤 방법을 사용하는게 맞는건가요?
문서 대부분은 TFDConnection 에서 StartTransaction 하고 Commit, Rollback 에서 하도록 되어 있는데 그럼 TFDTransaction 은 어떤 경우 사용하라는 건지 정확한 설명 좀 부탁드립니다.
댓글 2
-
험프리
2021.04.19 17:18
-
WhiteC
2021.04.20 07:34
엠바카데로 기술문서에 명시되어 있지만, 너무 간단하여 혼란의 여지가 있습니다.
제가 아는 한 부연하면,
최초 질문에 관해서는,
일반적인 DBMS의 경우, 예제에 있는 것처럼 중첩된 트랜잭션 포함 일반적인 트랜잭션인 경우, FDTranaction을 사용할 이유가 없습니다. (그래서 DocWiki에도 FDTranaction 사용은 Optional 이라고 표현되어 있습니다. 트랜잭션 처리를 한다고 해서 FDTranaction이 꼭 필요한 것이 아니라는 의미입니다. 상황에 따라 상황이 맞을 경우에 한하여 사용하면 됩니다.)
아울러 험프리님의 답글에 언급된 '다중 활성 트랜잭션을 지원하는'에 대해서 제가 이해한 것을 부연 설명하면,
다만, InterBase, FirdBird 등의 DBMS를 사용한다면 다음의 경우에 고려해볼 수 있습니다. 왜냐하면 이 InterBase와 FirdBird는 여러개의 명령을 하나의 트랜잭션에 담고, 이런 트랜잭션 여러개가 독립적으로 동시에 살아 있어서 각각의 트랜잭션을 관리할 수 있기 때문입니다.
Delphi FireDac Transaction 문의
2021.04.19 13:54
Firedac 에서 Transaction 은 어떤 방법으로 사용하는게 정상인가요?
Commit, Rollback 을
TFDConnection 을 이용하는 방법과 TFDTransaction 을 이용하는 방법에는 어떤 차이가 있나요?
그리고 두가지 중 어떤 방법을 사용하는게 맞는건가요?
문서 대부분은 TFDConnection 에서 StartTransaction 하고 Commit, Rollback 에서 하도록 되어 있는데 그럼 TFDTransaction 은 어떤 경우 사용하라는 건지 정확한 설명 좀 부탁드립니다.
댓글 2
-
험프리
2021.04.19 17:18
-
WhiteC
2021.04.20 07:34
엠바카데로 기술문서에 명시되어 있지만, 너무 간단하여 혼란의 여지가 있습니다.
제가 아는 한 부연하면,
최초 질문에 관해서는,
일반적인 DBMS의 경우, 예제에 있는 것처럼 중첩된 트랜잭션 포함 일반적인 트랜잭션인 경우, FDTranaction을 사용할 이유가 없습니다. (그래서 DocWiki에도 FDTranaction 사용은 Optional 이라고 표현되어 있습니다. 트랜잭션 처리를 한다고 해서 FDTranaction이 꼭 필요한 것이 아니라는 의미입니다. 상황에 따라 상황이 맞을 경우에 한하여 사용하면 됩니다.)
아울러 험프리님의 답글에 언급된 '다중 활성 트랜잭션을 지원하는'에 대해서 제가 이해한 것을 부연 설명하면,
다만, InterBase, FirdBird 등의 DBMS를 사용한다면 다음의 경우에 고려해볼 수 있습니다. 왜냐하면 이 InterBase와 FirdBird는 여러개의 명령을 하나의 트랜잭션에 담고, 이런 트랜잭션 여러개가 독립적으로 동시에 살아 있어서 각각의 트랜잭션을 관리할 수 있기 때문입니다.
아시다시핀, FireDAC은 데이터베이스 트랜젝션 처리를 위해 TFDConnection과 TFDTransaction 컴포넌트를 사용할 수 있습니다.
기본적인 매커니즘은 2가지가 동일합니다.
명시적으로 StartTransaction 메소드 호출 후 성공 시 Commit, 실패 시 Rollback 메소드를 호출해 수행되는 쿼리에 대해 트랜젝션 처리합니다.
추가로, 트랜젝션 옵션으로 Isolation(중첩), ReadOnly 등의 옵션을 적용할 수 있습니다.
만약, DBMS에서 다중 활성 트랜잭션을 지원하는 경우, TFDTransaction을 여러개 사용해, 읽기와 쓰기 트랜젝션을 별도로 구성할 수도 있습니다.
(어떻게 보면 TFDConnection과 TFDTransaction의 차별화할 수 있는 내용이라 생각됩니다.)
자세한 내용은 다음 엠바카데로 기술문서를 참고하시어 확인 바랍니다.
http://docwiki.embarcadero.com/RADStudio/Sydney/en/Managing_Transactions_(FireDAC)
파파고 자동 번역