자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi FireDAC 쿼리 사용 시 일부데이터만 가져와 FetchAll을 호출해야 전체 데이터를 가져옵니다.
2020.09.10 16:15
Q,
FireDAC 쿼리(TFQuery) 사용 시 일부데이터만 가져와 FetchAll을 호출해 전체 데이터를 가져옵니다.
FetchAll을 호출하지 않고, 전체 데이터를 가져올 수 있을까요?
A,
FireDAC 데이터셋(TFDQuery 등)은 성능을 이유로 쿼리시 가져올 레코드 수를 지정할 수 있습니다.
이 옵션이 기본으로 옵션 변경은 FetchOptions.Mode를 fmOnDemand와 FetchOptions.RowsetSize(기본 50)가 지정됩니다.
쿼리 시 모든 데이터를 가져오고 싶다면, FetchOptions.Mode를 fmAll로 지정하면 됩니다.
FireDAC의 FetchOptions를 포함한 옵션들은 Cascade 방식으로 상위 컴포넌트에서 하위 컴포넌트로 설정이 적용됩니다.
즉, TFDManager의 옵션은 TFDConnection에 적용되고, TFDQuery등의 데이터셋에도 적용됩니다.
TFDConnection 등의 FetchOptions.Mode를 fmAll로 지정하면, 해당 컴포넌트를 Connection으로 설정한 모든 데이터셋 컴포넌트에서 쿼리 시 모든 레코드를 조회해 옵니다.
다음 링크에서 유용한 옵션과 캐스캐이딩 옵션에 대해 자세히 설명합니다.
https://tech.devgear.co.kr/delphi_news/409959
댓글 0
Delphi FireDAC 쿼리 사용 시 일부데이터만 가져와 FetchAll을 호출해야 전체 데이터를 가져옵니다.
2020.09.10 16:15
Q,
FireDAC 쿼리(TFQuery) 사용 시 일부데이터만 가져와 FetchAll을 호출해 전체 데이터를 가져옵니다.
FetchAll을 호출하지 않고, 전체 데이터를 가져올 수 있을까요?
A,
FireDAC 데이터셋(TFDQuery 등)은 성능을 이유로 쿼리시 가져올 레코드 수를 지정할 수 있습니다.
이 옵션이 기본으로 옵션 변경은 FetchOptions.Mode를 fmOnDemand와 FetchOptions.RowsetSize(기본 50)가 지정됩니다.
쿼리 시 모든 데이터를 가져오고 싶다면, FetchOptions.Mode를 fmAll로 지정하면 됩니다.
FireDAC의 FetchOptions를 포함한 옵션들은 Cascade 방식으로 상위 컴포넌트에서 하위 컴포넌트로 설정이 적용됩니다.
즉, TFDManager의 옵션은 TFDConnection에 적용되고, TFDQuery등의 데이터셋에도 적용됩니다.
TFDConnection 등의 FetchOptions.Mode를 fmAll로 지정하면, 해당 컴포넌트를 Connection으로 설정한 모든 데이터셋 컴포넌트에서 쿼리 시 모든 레코드를 조회해 옵니다.
다음 링크에서 유용한 옵션과 캐스캐이딩 옵션에 대해 자세히 설명합니다.
https://tech.devgear.co.kr/delphi_news/409959