자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi FireDac에서 조회건수(RecordCount) 에 대한 재질문 입니다
2016.09.30 10:41
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
DELPHI XE6, MSSQL 을 사용 합니다
BDE에서는 Select 하고 query.RecordCount 를 하면 조회된 Record 건수를 알 수 있습니다(BDE.DBControls)
그런데 FireDac에서는 어떻게 하는가와 관련한 1624번 질의의 재질문입니다 (좀더 상세하게 질의 드립니다)
1624번 얄리님의 답변에 감사 드립니다.
그런데.... 도움말의 그 내용에 대해서 구체적으로 잘 알 수 없어서 입니다.
( ※ 물론 FDQUERY 의 Property 에서 Rowsetsize를 (default로 50으로 되어 있는 것을 10000 이나 50000 또는
100000, 1000000 정도로 조회될 수 있는 최대 크기로 잡아주면 됩니다
하지만 알고 싶은 것은 이방법이 아니고 그 도움말의 내용 입니다 )
도움말에 있는 것 같이 FDQUERY의 Property 에서 RecordCountMode = True 하였으나 여전히
FDQuery.RecordCount 를 하면 최대 50건까지는 조회된 Record 건수가 제대로 나오지만 50건 이상부터는 50건으로만
나옵니다. (rowsetsize = False 인경우), (Rowsetsize = -1, rowsetsize = True 하면 이젠 그 반인 25건까지만
제대로 나오고 그이상은 25건으로 됩니다)
그래서 얄리님께서 구체적으로 구현 하셨다면 그 내용을 좀 알려 주시면 감사 하겠습니다
(만일 FDQUERY Property 에서 RecordCountMode = True 하여 된다면 혹 FDConnect 나 다른 관련사항의 setting
에서 주의 할 것이 있다면 어떤 건지요)
Delphi FireDac에서 조회건수(RecordCount) 에 대한 재질문 입니다
2016.09.30 10:41
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
DELPHI XE6, MSSQL 을 사용 합니다
BDE에서는 Select 하고 query.RecordCount 를 하면 조회된 Record 건수를 알 수 있습니다(BDE.DBControls)
그런데 FireDac에서는 어떻게 하는가와 관련한 1624번 질의의 재질문입니다 (좀더 상세하게 질의 드립니다)
1624번 얄리님의 답변에 감사 드립니다.
그런데.... 도움말의 그 내용에 대해서 구체적으로 잘 알 수 없어서 입니다.
( ※ 물론 FDQUERY 의 Property 에서 Rowsetsize를 (default로 50으로 되어 있는 것을 10000 이나 50000 또는
100000, 1000000 정도로 조회될 수 있는 최대 크기로 잡아주면 됩니다
하지만 알고 싶은 것은 이방법이 아니고 그 도움말의 내용 입니다 )
도움말에 있는 것 같이 FDQUERY의 Property 에서 RecordCountMode = True 하였으나 여전히
FDQuery.RecordCount 를 하면 최대 50건까지는 조회된 Record 건수가 제대로 나오지만 50건 이상부터는 50건으로만
나옵니다. (rowsetsize = False 인경우), (Rowsetsize = -1, rowsetsize = True 하면 이젠 그 반인 25건까지만
제대로 나오고 그이상은 25건으로 됩니다)
그래서 얄리님께서 구체적으로 구현 하셨다면 그 내용을 좀 알려 주시면 감사 하겠습니다
(만일 FDQUERY Property 에서 RecordCountMode = True 하여 된다면 혹 FDConnect 나 다른 관련사항의 setting
에서 주의 할 것이 있다면 어떤 건지요)
FireDAC은 Live Data Window(LDW) 모드 기능을 제공합니다.
Live Data Window 모드는 질의한 결과 레코드 중 일부만 메모리에 유지해, 효과적으로 메모리를 사용할 수 있는 기능이며,
필요한 경우(레코드 이동 등) 추가로 레코드를 메모리에 로드하는 기능입니다.
http://docwiki.embarcadero.com/RADStudio/XE8/en/Browsing_Tables_(FireDAC)#Live_Data_Window_Mode
위 기능 때문에 질문의 내용과 같이 RecordCount가 50으로 표시됩니다.
한번에 가져오고 싶은 레코드 크기를 지정하려면
TFDConnection 또는 TFDQuery의 속성 중 FetchOptions.RowsetSize를 수정하시고,
해당 기능을 사용하지 않으려면 FetchOptions.Mode 를 cmTotal로 설정하시기 바랍니다.