#. 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
'Development > Delphi' 카테고리의 다른 글
로컬 IP 가져오기 (0) | 2015.08.25 |
---|---|
Form 생성 및 해제 (0) | 2015.08.25 |
프로퍼티, property (0) | 2015.08.21 |
DateUtils.pas 날짜함수 (0) | 2015.08.13 |
자식컨트롤 특정 클래스타입 찾기 (0) | 2015.07.17 |