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

[DocWiki 번역] FireDAC.Stan.Option.TFDFetchOptions.Mode


Recommended Posts

Docwiki에 있는 "FireDAC.Stan.Option.TFDFetchOptions.Mode"를 번역한 글: 번역일: 2022년 3월 29일)

위로 가기: [DocWiki 번역] TFDFetchOptions

(이 글은 "설명" 부분만 번역했음. 클래스 선언, 부모, 메소드, 프로퍼티, 프로퍼티, 유닛 정보 등등은 Mode 원문에 정리된 것을 볼것)

 

설명 (Description)

아래와 같이 모드(Mode)를 사용하여, FireDAC 내부 데이터 저장소로 레코드를 담아오는 방식을 제어한다.

모드(Mode) 설명
fmManual FireDAC이 레코드를 자동으로 담아오지 않는다. 적절한 시점에 데이터를 담아오도록 프로그래머가 아래 메소드를 사용하여 코드를 작성해야 한다.
  • FatchAll: 레코드를 모두 가져온다.
  • GetNextPacket:RowsetSize에 지정된 갯수 만큼 레코드가 담긴 다음 레코드 세트 (Packet)를 담아온다.
fmOnDemand  데이터 셋 안을 이동(navigation)하거나 또는 기타 데이터셋 메소드가 요청을 하면, FireDAC이 자동으로 레코드를 담아온다. 요청 하나 당, FireDAC은 레코드 세트를 하나 또는 그 이상 가져오는데, RowsetSize에 지정된 갯수 만큼 레코드를 담아온다. 이 모드(mode)를 사용하면, 큰 결과 세트를 fmAll 모드를 사용하여 오픈할 때 발생될 수 있는 심각한 지연 이슈를 피할 수 있다. 하지만, 레코드를 모두 담아오는 데 걸리는 총 시간은 fmAll 모드보다 더 길다. 예를 들어 MS-SQL 서버에서 이 fmOnDemand 모드를 사용하면, MS-SQL 서버에 있는 정적(static) 커서가 사용된다.
fmAll 데이터셋을 Open하라는 호출을 받으면, FireDAC이 레코드 전체를 자동으로 담아온다. 결과 세트가 크면, 시간이 꽤 걸릴 수 있지만, 일단 가져오고 나면 데이터셋 안에서 이동할 때 빠르다. 이미 FireDAC 내부 데이터 저장소 안에 모든 레코드가 담겨있기 때문이다. MS-SQL 서버, MySQL 서버, Sybase SQL Anywhere 등 일부 데이터베이스에서는,
  • 클라이언트 결과 세트 버퍼를 해제함으로써 그 다음 명령 실행하여 결과 세트를 반환할 수 있도록 허용한다.
  • 최대 성능으로 데이터를 가져온다. 예를 들어, MS-SQL 서버에서는 Forward-Only 커서가 사용된다.
fmExactRecsMax 

fmAll과 비슷하지만, 가져온 레코드 갯수(RecordCount 프로퍼티의 값)와 #RecsMax가 일치하지 않으면 예외가 발생한다.

이 모드는  ExecSQL 메소드를 사용하여 실행되는 SQL 명령에도 영향을 준다. 만약 업데이트된 레코드의 갯수 (RowAffected 프로퍼티의 값)과 명시된 RecsMax가 일치하지 않으면 예외가 발생한다.

fmExactRecsMax는 다음 상황에 사용하라.

  • 애플리케이션으로 가져온 데이터가 지정된 키에 해당하는 레코드 단 하나 뿐인지 분명히 하고 싶을 때 (RecsMax를 1로 지정한다)
  • 애플리케이션에서 데이터를 업데이트(update) 또는 삭제(delete)할 때, 해당 레코드가 지정된 키에 해당하는 단 하나 뿐인지 분명히 하고 싶을 때 (RecsMax를 1로 지정한다)

기본값은 fmOnDemand이다.  TFDCustomMemTable인 경우에는 fmAll이 기본값이다.

 

기타 자료 (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...

중요한 정보

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