자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi FireDac에서 조회건수(RecordCount) 는 어떻게 하나요 ?
2016.09.28 14:46
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
DELPHI XE6, MSSQL 을 사용 합니다
BDE에서는 Select 하고 query.RecordCount 를 하면 조회된 Record 건수를 알 수 있습니다
그러나 FireDac 에서 FDQuery.RecordCount 를 하면 최대 50건까지는 조회된 Record 건수가
제대로 나오지만 50건 이상부터는 50건으로만 나옵니다.
( FDQUERY.RecordCount 는 사용설명 자료에 없는 것이지만 하였튼 coding 하면 위와 같이 됩니다)
(질문)
FireDac 에서는 BDE의 query.RecordCount -- BDE.DBControls --과 같은 기능을 하는 것은 없는가요?
( FireDac에서는 별도의 query로 Record Count를 해야하고 (예 Select count(*) 등 과 같이) BDE의
query.RecordCount 와 같은 것은 없나요 ? - FireDac을 잘 모르고 사용설명서등을 찾아보았지만 못
찾아서요) 누구 아는분 있으면 좀 가르쳐 주세요. BDE를 사용하다가 FireDAC으로 전환을 검토하다
보니 이런 질문이 생기네요)
(참고)
그리고 지난번 올린 hstmt 오류 (질문번호 1602 : 2016. 9. 19)에 대한 험프리님 답변은 고마왔습니다만
FD Connection의 ODBCAdvanced 매개변수에 MARS_Connection=YES 를 해다 이 오류는 계속 나왔습니다
또 참조하라고 오려주신 Url을 기초로 찾아보고 있지만 아직 해결책을 발견하지 못했습니다.
(물론 FD Connection을 별도로 각각 사용하면 된다는 것은 질의 할때부터 알고 있었고 현재까지의 대책은
이걸 사용 하는 것이지만 그래도 BDE에서도 가능 했는데 FireDac에서도 뭔가 답이 있을 거 같아 아직
찾아보고는 있지만...
※ 이오류의 구체적인 내용은 FireDac ODBC Connection 일때
with FDQuery_1 Do begin
( Select query 문 ....)
open
sel_count := FDQuery_1.RecordCount; // 이게 제대로 안되는 1 번 질문이고요 (BDE에서는 잘되지요)
While not FDQuery_1.EOF Do Begin
...
with FDQuery_2 Do begin // 이경우 FDQuery_1과 FDQuery_2가 동일 FD Connection 이면
// hstmt오류 발생 (BDE에서는 잘되지요)
( query 문 ... 예: select, update 등 )
end; // with FDQuery_2 Do begin
FDQuery_1.Next;
End; // While not FDQuery_1.EOF Do Begin
end; // with FDQuery_1 Do begin
입니다
Delphi FireDac에서 조회건수(RecordCount) 는 어떻게 하나요 ?
2016.09.28 14:46
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
DELPHI XE6, MSSQL 을 사용 합니다
BDE에서는 Select 하고 query.RecordCount 를 하면 조회된 Record 건수를 알 수 있습니다
그러나 FireDac 에서 FDQuery.RecordCount 를 하면 최대 50건까지는 조회된 Record 건수가
제대로 나오지만 50건 이상부터는 50건으로만 나옵니다.
( FDQUERY.RecordCount 는 사용설명 자료에 없는 것이지만 하였튼 coding 하면 위와 같이 됩니다)
(질문)
FireDac 에서는 BDE의 query.RecordCount -- BDE.DBControls --과 같은 기능을 하는 것은 없는가요?
( FireDac에서는 별도의 query로 Record Count를 해야하고 (예 Select count(*) 등 과 같이) BDE의
query.RecordCount 와 같은 것은 없나요 ? - FireDac을 잘 모르고 사용설명서등을 찾아보았지만 못
찾아서요) 누구 아는분 있으면 좀 가르쳐 주세요. BDE를 사용하다가 FireDAC으로 전환을 검토하다
보니 이런 질문이 생기네요)
(참고)
그리고 지난번 올린 hstmt 오류 (질문번호 1602 : 2016. 9. 19)에 대한 험프리님 답변은 고마왔습니다만
FD Connection의 ODBCAdvanced 매개변수에 MARS_Connection=YES 를 해다 이 오류는 계속 나왔습니다
또 참조하라고 오려주신 Url을 기초로 찾아보고 있지만 아직 해결책을 발견하지 못했습니다.
(물론 FD Connection을 별도로 각각 사용하면 된다는 것은 질의 할때부터 알고 있었고 현재까지의 대책은
이걸 사용 하는 것이지만 그래도 BDE에서도 가능 했는데 FireDac에서도 뭔가 답이 있을 거 같아 아직
찾아보고는 있지만...
※ 이오류의 구체적인 내용은 FireDac ODBC Connection 일때
with FDQuery_1 Do begin
( Select query 문 ....)
open
sel_count := FDQuery_1.RecordCount; // 이게 제대로 안되는 1 번 질문이고요 (BDE에서는 잘되지요)
While not FDQuery_1.EOF Do Begin
...
with FDQuery_2 Do begin // 이경우 FDQuery_1과 FDQuery_2가 동일 FD Connection 이면
// hstmt오류 발생 (BDE에서는 잘되지요)
( query 문 ... 예: select, update 등 )
end; // with FDQuery_2 Do begin
FDQuery_1.Next;
End; // While not FDQuery_1.EOF Do Begin
end; // with FDQuery_1 Do begin
입니다
도움말에 나옵니다.
http://docwiki.embarcadero.com/RADStudio/Berlin/en/Fetching_and_Populating_Questions_(FireDAC) 에서 Q4: My query returns 800 records, but RecordCount returns 50. What is wrong? 참조하세요