Development/Delphi
TDataSet 관련 (TQuery, TFDQuery)
코드의추억
2015. 8. 24. 13:05
#. TDataSet.CachedUpdate := True;
DB 에 다이렉트 적용이 아닌 클라이언트 메모리에서 처리후 DB 적용
- CachedUpdate 예제
FDQuery1.CachedUpdate := True; //클라이언트 캐쉬를 이용한다 FDQuery1.Append; ... FDQuery1.Post; //클라이언트 캐쉬에 적용(확정) 한다. FDConnection1.StartTransaction; // 트랜잭션 시작 iErrors := FDQuery1.ApplyUpdates; // 실제 DB 적용 if iErrors = 0 then begin FDQuery1.CommitUpdates; //클라이언트에 남아 있는 변경로그를 비운다. FDConnection1.Commit; // 실제 DB commit end else FDConnection1.Rollback; // 실제 DB rollback
- TFDDataSet.UpdatesPending
변경(입력,수정,삭제) 로그에 대한 레코드가 존재하는지 True/False 를 반환한다.
FFDQuery.ApplyUpdates 로 실DB 적용한 후 FFDQuery.CommitUpdates 를 호출해서 변경로그를 비워준다.
변경로그 초기 상태로 가야할 경우(취소, 예외발생 등) FFDQuery.CancelUpdates 를 호출해서 변경로그를 되돌린다.
현재 레코드만 되돌릴때는 FFDQuery.RevertRecord 를 호출해서 변경로그를 되돌린다.
// FireDAC 캐쉬를 이용한 업데이트
http://tech.devgear.co.kr/?mid=delphi_news&m=1&category=10722&document_srl=409889