|
void __fastcall Tfrm_Main::vt_VisitorHistoryGetText(TBaseVirtualTree *Sender,
PVirtualNode Node, TColumnIndex Column, TVSTTextType TextType,
WideString &CellText)
{
TNodeData* pnd;
pnd = (TNodeData*)Sender->GetNodeData(Node);
switch(Column)
{
case 0 : CellText = dm_Visitor->GetHistoryData(pnd->VID, "VISIT_DATE");
break;
case 1 : CellText = dm_Visitor->GetHistoryData(pnd->VID, "ENT_PLACE");
break;
case 2 : CellText = dm_Visitor->GetHistoryData(pnd->VID, "ENT_REASON");
break;
case 3 : CellText = dm_Visitor->GetHistoryData(pnd->VID, "ENT_COMPS");
break;
case 4 : CellText = dm_Visitor->GetHistoryData(pnd->VID, "ENT_CARNUM");
break;
}
}
GetText 이벤트에 저러한 식으로 코딩을 했습니다.
DB에서 한번에 많은 양의 데이터를 가져오면 속도도 늦고 부하가 있을것으로 예상되어 속도를 빠르게 하기 위해서
일단 IDList만 가져와서 id를 NodeData로 지정했습니다.
그리고 GetText 이벤트가 올때 해당 id에 해당하는 데이터만 가져올 수 있게 하였습니다.
그런데 문제는 이노무 GetText 이벤트가 한번 데이터를 가져오면 다시는 가져오지 않는 방식이 아니라
계속 가져오네요;; 덕분에 그냥 일괄로 한번에 가져오는것보다 훨씬 느리게 되었습니다.
그래서 CellText가 DefaultText 일때만 데이터를 쓰려고 했지만..
CellText도 새로 쓴 데이터가 들어오는게 아니라 계속해서 DefaultText로 들어오네요.
방법이 없을까요?
|