자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey 리스트박스 PACKETRECORDS
2015.05.08 19:10
XE8 MOBILE APP에서
가져오는 자료가많거나 이미지가 포함되어 있어 packetrecords 를 이용하여 자료를 가져오려합니다.처음 가져오는 부분이 너무 오래걸려서요. 일반(VCL) dbgrid 를 이용할 때는 잘되는데 앱작성할 때는 잘 안됩니다.방법이 다른것 같기도 하고요.
가져온 자료를 보여주는 부분이 listbox (stylebook 을 이용하여 직접 생성)입니다. listbox 가 스크롤될 때 GetNextPacket 이 되어 다음자료를 보여주고 싶습니다.한꺼번에 다보여지면 어차피 속도가 느려지는건 마찬가지이니까요
ClientDataSet 에 packetrecords 값을 넣으면 key violation 오류가 납니다.Dataset 이나 ListBox 의 scroll 부분에 GetNextPacket 나 refresh 를 넣어도 마찬가지입니다.웹처럼 스크롤될 때(또는 다음) 양을 늘리면서 listbox 를 보여주고 싶습니다.
ClientDataSet 을 적게 가져와 listbox 가 스크롤될 때 늘려가며 보여주는 방법을 알고계시면 답변부탁드립니다.
댓글 6
-
Humphery
2015.05.11 19:13
-
김하나
2015.05.12 00:47
http://blog.hjf.pe.kr/271 블로그에서
자세한 내용은 하단의 링크를 통해 따라해 보시기 바랍니다.
링크가 없는페이지로 나오네요..엠바카데로 커뮤니티에서 Sarina Duont 글부분에서 찾아보았으나 , http://community.embarcadero.com/index.php/blogs/blogger/listall/sarina-dupont-embarcadero-com?start=10
TListView의 당겨서 새로고침(OnPullRefresh) 이벤트에서 데이터 처리하는 기능에 대한 샘플을 찾기가 힘드네요...
-
Humphery
2015.05.12 02:12
데이터는 어떤 방식(데이터스냅, 임베디드 디비, 웹서비스)으로 조회하나요?
-
김하나
2015.05.12 20:29
DataSnap 3tier 서버 : FireDAC(FDQuery,DataSet Provider,FDConnection), Client : ClientDataSet 을 사용하고 있습니다.
BAAS는 이용해보지 않았습니다.
-
Humphery
2015.05.13 01:42
네^^ 바로 자료를 드릴수는 없지만 향후 데이터스냅 관련 자료 만들때 데이터를 나눠서 가져오는 기능도 추가하도록 하겠습니다.
-
김하나
2015.05.13 02:28
FireDAC - Fetchoption 으로 변경해보고있는데 잘안되네요..
데이터스냅 자료 부탁드립니다~^^
Firemonkey 리스트박스 PACKETRECORDS
2015.05.08 19:10
XE8 MOBILE APP에서
가져오는 자료가많거나 이미지가 포함되어 있어 packetrecords 를 이용하여 자료를 가져오려합니다.
처음 가져오는 부분이 너무 오래걸려서요. 일반(VCL) dbgrid 를 이용할 때는 잘되는데 앱작성할 때는 잘 안됩니다.
방법이 다른것 같기도 하고요.
가져온 자료를 보여주는 부분이 listbox (stylebook 을 이용하여 직접 생성)입니다.
listbox 가 스크롤될 때 GetNextPacket 이 되어 다음자료를 보여주고 싶습니다.
한꺼번에 다보여지면 어차피 속도가 느려지는건 마찬가지이니까요
ClientDataSet 에 packetrecords 값을 넣으면 key violation 오류가 납니다.
Dataset 이나 ListBox 의 scroll 부분에 GetNextPacket 나 refresh 를 넣어도 마찬가지입니다.
웹처럼 스크롤될 때(또는 다음) 양을 늘리면서 listbox 를 보여주고 싶습니다.
ClientDataSet 을 적게 가져와 listbox 가 스크롤될 때 늘려가며 보여주는 방법을 알고계시면 답변부탁드립니다.
댓글 6
-
Humphery
2015.05.11 19:13
-
김하나
2015.05.12 00:47
http://blog.hjf.pe.kr/271 블로그에서
자세한 내용은 하단의 링크를 통해 따라해 보시기 바랍니다.
링크가 없는페이지로 나오네요..엠바카데로 커뮤니티에서 Sarina Duont 글부분에서 찾아보았으나 ,http://community.embarcadero.com/index.php/blogs/blogger/listall/sarina-dupont-embarcadero-com?start=10TListView의 당겨서 새로고침(OnPullRefresh) 이벤트에서 데이터 처리하는 기능에 대한 샘플을 찾기가 힘드네요... -
Humphery
2015.05.12 02:12
데이터는 어떤 방식(데이터스냅, 임베디드 디비, 웹서비스)으로 조회하나요?
-
김하나
2015.05.12 20:29
DataSnap 3tier 서버 : FireDAC(FDQuery,DataSet Provider,FDConnection), Client : ClientDataSet 을 사용하고 있습니다.BAAS는 이용해보지 않았습니다. -
Humphery
2015.05.13 01:42
네^^ 바로 자료를 드릴수는 없지만 향후 데이터스냅 관련 자료 만들때 데이터를 나눠서 가져오는 기능도 추가하도록 하겠습니다.
-
김하나
2015.05.13 02:28
FireDAC - Fetchoption 으로 변경해보고있는데 잘안되네요..
데이터스냅 자료 부탁드립니다~^^
모바일에서 많은 데이터를 한번에 가져오는 경우 너무 오래 걸려 부분적으로(페이징 형태로) 데이터를 가져오고 싶은 것으로 보이는데요.
먼저 오래걸리는 부분이 (1) 데이터를 가져오는 것이 오래걸리는지 (2) 가져온 데이터를 목록(ListBox)에 표시하는 것이 오래걸리는지 파악할 필요가 있습니다.
(1) 데이터를 가져오는 것이 오래걸리는 것은 말씀하신 페이징 단위로 데이터를 가져오는 것도 좋은 방법이고,
너무 길지 않다면 쓰레드로 데이터를 가져오고, 화면에 데이터를 가져오는 진행률을 표시하는 것도 좋은 방법일 것 같습니다
-> 페이징 단위로 당겨서 새로고침 기능은 http://blog.hjf.pe.kr/271 글을 참고하세요.(TListView의 PullToRefresh 기능 이용)
-> FireDAC의 옵션을 이용해 데이터를 페이징 단위로 조회할 수 있습니다. - http://tech.devgear.co.kr/delphi_news/409959
(2) 만약, 데이터를 가져오는 것보다 데이터를 목록에 표현하는 시간이 오래 걸리는 경우 내부의 데이터셋을 일부만 목록에 표시하고 (1)을 참고해 페이징 단위로 목록을 표시해보세요.
딱 원하는 기능으로 설명해드리지 못했는데요. 위 내용을 학습해 보시고 직접 구현해보시고 다시 질문주시기 바랍니다.