Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

[DocWiki 번역] FireDAC.Comp.DataSet.TFDDataSet.CachedUpdates


Recommended Posts

Docwiki에 있는 "FireDAC.Comp.DataSet.TFDDataSet.CachedUpdates"를 번역한 글: 번역일: 2022년 3월 30일)

위로 가기: TFDDataSet

(이 글은 "설명" 부분만 번역했음. 클래스 선언, 부모, 메소드, 프로퍼티, 프로퍼티, 유닛, 기타 자료 등등은 CachedUpdates 원문에서 볼 것)

 

설명 (Description)

 

 데이터셋 변경을 데이터베이스에 즉시 반영하지 않고 로그에 기록해 둘 것인지 여부를 명시한다.

CachedUpdates는 데이터 변경 (Insert/Post, Edit/Post, Delete)을 데이터베이스에 즉시 반영하지 않고 "로그에 기록해 두기"를 활성화 (True) 또는 비활성화 (False) 한다. 애플리케이션에서는 반드시 명시적으로  ApplyUpdates 메소드를 호출하여  "변경 반영 (apply changes)"을 해야 변경 로그가 데이터베이스에 반영된다.  모든 변경은 각 트랜젝션 당 짧은 시간 내에 기록된.  캐시된 업데이트를 활성화하면 다음과 같은 주요 장점을 얻을 수 있다.

  • 트랜젝션을 더 적게 사용하고 트랜젝션 시간이 더 짧아진다.
  • 네트워크 트래픽이 최소화된다.
  • 데이터셋에 되돌리기(undo) / 다시 적용하기(redo)를 구현하기가 간편하다.
  • 애플리케이션에 오프라인 모드 즉 서류가방(briefcase) 모델을 구현할 수 있다.

캐시된 업데이트를 활성화함으로 인한 잠재적인 단점은 다음과 같다.

  • 사용자가 로컬에 복사된 데이터를 편집하는 동안 다른 애플리케이션에서 데이터베이스 서버에 있는 실제 데이터에 접근하고 변경할 수도 있기 때문에 캐시된 업데이트가 데이터베이스에 반영될 때 변경 충돌이 발생될 수 있다.
  • 캐시된 변경이 데이터베이스에 반영되기 전에는 무엇이 변경되었는 지를 다른 애플리케이션에서 알 수 없다. 

주의: TFDTable에서 CachedUpdate 프로퍼티를 변경하려면, 반드시 비활성화 상태여야 한다.

예제 (Samples)

FDQuery1.CachedUpdates := True;
...
FDQuery1.Edit;
...
FDQuery1.Post;
...
FDQuery1.Append;
...
FDQuery1.Post;
...
FDQuery1.ApplyUpdates;
FDQuery1.CommitUpdates;
FDQuery1.CachedUpdates := False;

 

기타 자료 (See Also)

이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.