본문 바로가기

Development/Delphi

TDataSet 관련 (TQuery, TFDQuery)

#. 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