Click here to Skip to main content
15,888,984 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
Questiongetting table names from MS Access (.mdb file) in MFC Pin
suthakar5624-Jul-09 2:54
suthakar5624-Jul-09 2:54 
QuestionRe: getting table names from MS Access (.mdb file) in MFC Pin
Rajesh R Subramanian24-Jul-09 2:57
professionalRajesh R Subramanian24-Jul-09 2:57 
AnswerRe: getting table names from MS Access (.mdb file) in MFC Pin
suthakar5624-Jul-09 3:21
suthakar5624-Jul-09 3:21 
GeneralRe: getting table names from MS Access (.mdb file) in MFC Pin
Rajesh R Subramanian24-Jul-09 4:20
professionalRajesh R Subramanian24-Jul-09 4:20 
AnswerRe: getting table names from MS Access (.mdb file) in MFC Pin
Muhammad Mazhar24-Jul-09 3:21
Muhammad Mazhar24-Jul-09 3:21 
QuestionCString to long Pin
Davitor24-Jul-09 2:40
Davitor24-Jul-09 2:40 
AnswerRe: CString to long Pin
Rajesh R Subramanian24-Jul-09 2:54
professionalRajesh R Subramanian24-Jul-09 2:54 
QuestionHow To Reduce time for populating the Data in Graph Format Pin
prashant_lathigara from india24-Jul-09 1:42
prashant_lathigara from india24-Jul-09 1:42 
Hello, I am prashant workign with one company and doing the Graph Designing into my application. now the issue is that i create the function for populating the graph data but it takes to much time to populate data.

Can any body tell me how to reduce the time for populating data.

the following is my function from which i draw the graph data from one table.

void D_ScripGraphWnd::OnDraw(CDC *pDC)
{

CRect crect;
BOOL b;
CPen CenterPen, AxisPen, SlotPen, DrawPenRise, DrawPenFall;
CBrush brush;
CFont font;
CPen* OldPen;
CFont *OldFont;
int left, right, top, bottom, Height, Width ;
b = CenterPen.CreatePen(PS_DASH, 0, m_GraphColor_ula[REFERENCE_DATA]);
GetClientRect(crect);
Height = m_YSlots_l * m_SlotWidthY_l + 2*m_MarginY_l ;
Width = m_XSlots_l * m_SlotWidthX_l + 2*m_MarginX_l ;
crect.left = 0;
SetScaleToFitSize;
if(crect.right < Width)
crect.right = Width;
crect.top = 0;
if(crect.bottom < Height)
crect.bottom = Height;
pDC->FillRect(crect, &brush);
pDC->SetBkMode(TRANSPARENT);
left = m_MarginX_l ;
right = Width - m_MarginX_l;
top = m_MarginY_l ;
bottom = Height - m_MarginY_l;
OldPen = pDC->SelectObject(&SlotPen);
OldFont = pDC->SelectObject(&font);
char l_StartTime_ca[TIME_STAMP_LEN] = "";
char l_CurrTime_ca[TIME_STAMP_LEN] = "";
CTimeSpan l_TimeSpan_cl(0,0,30,0);
CTime l_SeriesStartTime_cl, l_SeriesCurrTime_cl;
CTime l_IndexStartTime_cl, l_IndexCurrTime_cl;
CTime l_StartTime_cl, l_CurrTime_cl;
l_SeriesStartTime_cl = l_SeriesCurrTime_cl = NULL;
l_IndexStartTime_cl = l_IndexCurrTime_cl = NULL;
ScripGraphInfo_T* l_ScripGraphInfo_stp;
l_TimeSpan_cl = CTimeSpan(0,1,00,0);
int l_i_l;
int minutes;
if(m_ScripGraphTable_clp->m_maxEntries_l != 0 && m_ScripGraphTable_clp->m_IndexQuerySuccess_b == TRUE )
{
//To find out the starting time on X-Axis.
l_ScripGraphInfo_stp = (ScripGraphInfo_T *)m_ScripGraphTable_clp->GetAt(0);
if(l_ScripGraphInfo_stp == NULL)
return;
if(l_ScripGraphInfo_stp->TimeStamp_uca[MM] >= 30)
minutes = 30;
if(l_ScripGraphInfo_stp->TimeStamp_uca[MM] < 30)
minutes = 0;
l_IndexStartTime_cl = CTime(l_ScripGraphInfo_stp->TimeStamp_uca[CC]*100 + l_ScripGraphInfo_stp->TimeStamp_uca[YY],
l_ScripGraphInfo_stp->TimeStamp_uca[MO],
l_ScripGraphInfo_stp->TimeStamp_uca[DD],
l_ScripGraphInfo_stp->TimeStamp_uca[HH],
minutes,
0);


l_ScripGraphInfo_stp = (ScripGraphInfo_T *)m_ScripGraphTable_clp->GetAt(m_ScripGraphTable_clp->m_maxEntries_l-1);
if(l_ScripGraphInfo_stp == NULL)
return;

l_IndexCurrTime_cl = CTime(l_ScripGraphInfo_stp->TimeStamp_uca[CC]*100 + l_ScripGraphInfo_stp->TimeStamp_uca[YY],
l_ScripGraphInfo_stp->TimeStamp_uca[MO],
l_ScripGraphInfo_stp->TimeStamp_uca[DD],
l_ScripGraphInfo_stp->TimeStamp_uca[HH],
l_ScripGraphInfo_stp->TimeStamp_uca[MM],
0);

}
strcpy(l_StartTime_ca, l_IndexStartTime_cl.Format("%H:%M"));
l_StartTime_cl = l_IndexStartTime_cl;

strcpy(l_CurrTime_ca, l_IndexCurrTime_cl.Format("%H:%M"));
l_CurrTime_cl = l_IndexCurrTime_cl;

pDC->SetTextColor(m_GraphColor_ula[AXIS_LABELS]);

for(l_i_l = 0; l_i_l <= m_XSlots_l; l_i_l++)
{
pDC->MoveTo(left, top);
pDC->LineTo(left, bottom);
if(m_DisplayXScale_b)
{
if(m_InitTime_cl != NULL && (l_i_l %2 == 0))
{
CTimeSpan l_Span_cl = l_StartTime_cl - l_CurrTime_cl;
if(l_Span_cl <= l_TimeSpan_cl)
pDC->TextOut(left-10 , bottom+5, l_StartTime_ca);
l_StartTime_cl += l_TimeSpan_cl;
strcpy(l_StartTime_ca, l_StartTime_cl.Format("%H:%M"));
}
}
left += m_SlotWidthX_l;
}
char l_buff_ca[20];
int j = m_Origin_l + m_YSlots_l*SlotWidthY;
left = m_MarginX_l;
for(l_i_l=0; l_i_l<=m_YSlots_l; l_i_l++)
{
pDC->MoveTo(left, top);
pDC->LineTo(right, top);
sprintf(l_buff_ca, "%d", j);

if(m_DisplayYScale_b)
{
if ((strcmp(g_SystemInfo_st.BrokerCode_ca, "") != 0) &&
(strcmp(g_SystemInfo_st.TraderCode_ca, "") != 0))
{
if(m_ScripGraphTable_clp->m_maxEntries_l > 0 )
pDC->TextOut(left - m_MarginX_l, top-2 , l_buff_ca);

}
}
top += SlotWidthY;
j -= SlotWidthY;
}
top = m_MarginY_l ;
pDC->SelectObject(&AxisPen);
pDC->MoveTo(left, top);
pDC->LineTo(left, bottom);
pDC->MoveTo(left, bottom);
pDC->LineTo(right, bottom);
pDC->SelectObject(&CenterPen);

if ((strcmp(g_SystemInfo_st.BrokerCode_ca, "") != 0) &&
(strcmp(g_SystemInfo_st.TraderCode_ca, "") != 0))
{
PrevCloseY = int(l_ScripDayOpen1)- m_Origin_l;
PrevCloseY = bottom-PrevCloseY;
pDC->MoveTo(left, PrevCloseY);
pDC->LineTo(right,PrevCloseY);
}
CString key;
char temp[20];
int x,y;
m_tooltip.Activate(TRUE);
for(l_i_l = 0; (l_i_l < m_ScripGraphTable_clp->m_maxEntries_l && m_InitTime_cl != NULL); l_i_l++)
// for( pos = g_IndexMap_cl.GetStartPosition(); pos != NULL; )
{
if(m_MinY_l == -1 || m_MaxY_l == -1)
return;
l_ScripGraphInfo_stp = (ScripGraphInfo_T* )m_ScripGraphTable_clp->GetAt(l_i_l);
if(l_ScripGraphInfo_stp == NULL)
return;
strcpy(l_CurrTime_ca, "");
if(l_ScripGraphInfo_stp->TimeStamp_uca[HH] < 10)
strcpy(l_CurrTime_ca, "0");
sprintf(temp, "%d",l_ScripGraphInfo_stp->TimeStamp_uca[HH]);
strcat(l_CurrTime_ca, temp);

if(l_ScripGraphInfo_stp->TimeStamp_uca[MM] < 10)
strcat(l_CurrTime_ca, "0");
sprintf(temp, "%d",l_ScripGraphInfo_stp->TimeStamp_uca[MM]);
strcat(l_CurrTime_ca, temp);
l_CurrTime_cl = CTime(l_ScripGraphInfo_stp->TimeStamp_uca[CC]*100 + l_ScripGraphInfo_stp->TimeStamp_uca[YY],
l_ScripGraphInfo_stp->TimeStamp_uca[MO],
l_ScripGraphInfo_stp->TimeStamp_uca[DD],
l_ScripGraphInfo_stp->TimeStamp_uca[HH],
l_ScripGraphInfo_stp->TimeStamp_uca[MM],
0/*l_ScripGraphInfo_stp->TimeStamp_uca[SS]*/);
CString l_inittime_cl = m_InitTime_cl.Format("%H, %M, %S");
CString l_currtime_cl = l_CurrTime_cl.Format("%H, %M, %S");
l_TimeSpan_cl = l_CurrTime_cl - m_InitTime_cl;
CString l_timespan_cl = l_TimeSpan_cl.Format("%H, %M, %S");
x = l_TimeSpan_cl.GetTotalMinutes();
if(x < 0)
{
IF_ERROR1(1, "Invalid time rcvd.");
return;
}
y= (int)l_ScripGraphInfo_stp->ScripValue_l/10000 ;/// 100;
if(y == 0)
continue;
AdjustSlots(x, y);
y -= m_Origin_l;
if(l_i_l == 0)
{
pDC->MoveTo(left+x, bottom-y);
if(l_ScripGraphInfo_stp->ScripValue_l/10000< l_ScripDayOpen1)
pDC->SetPixel(left+x, bottom-y, m_GraphColor_ula[INDEX_FALLING]);
else
pDC->SetPixel(left+x, bottom-y, m_GraphColor_ula[INDEX_RISING]);
}

CPoint l_CurrPt_cl = pDC->GetCurrentPosition();

if(l_ScripGraphInfo_stp->ScripValue_l/10000 < l_ScripDayOpen1)//Prev Close
// if((long)indexval < m_ScripGraphTable_clp->l_ScripDayOpen1)
pDC->SelectObject(&DrawPenFall);
else
pDC->SelectObject(&DrawPenRise);


switch(m_GraphStyle_s)
{

case LINESTYLE :

//Consider origin as (left,top) of the window, so graph grows down.
if(l_CurrPt_cl.y < PrevCloseY && (bottom-y) >= PrevCloseY)
{
pDC->SelectObject(&DrawPenRise);
pDC->LineTo(left+x, PrevCloseY);
pDC->SelectObject(&DrawPenFall);
pDC->LineTo(left+x, bottom-y);

}

if(l_CurrPt_cl.y > PrevCloseY && (bottom-y) <= PrevCloseY)
{
pDC->SelectObject(&DrawPenFall);
pDC->LineTo(left+x, PrevCloseY);
pDC->SelectObject(&DrawPenRise);
pDC->LineTo(left+x, bottom-y);

}

pDC->LineTo(left+x, bottom-y);

break;

case BARSTYLE :

pDC->MoveTo(x+left, PrevCloseY);
pDC->LineTo(x+left, bottom-y);

break;

default :
if(l_ScripGraphInfo_stp->ScripValue_l/10000 < l_ScripDayOpen1)
pDC->SetPixel(x+MarginX, bottom-y, m_GraphColor_ula[INDEX_FALLING]);
else
pDC->SetPixel(x+MarginX, bottom-y, m_GraphColor_ula[INDEX_RISING]); break;
}

}
pDC->SelectObject(OldFont);
pDC->SelectObject(OldPen);

CenterPen.DeleteObject();
AxisPen.DeleteObject();
SlotPen.DeleteObject();
DrawPenRise.DeleteObject();
DrawPenFall.DeleteObject();
brush.DeleteObject();
font.DeleteObject();

return;
}
Can any body tell me how to reduce time to populating data.
AnswerRe: How To Reduce time for populating the Data in Graph Format Pin
Cedric Moonen24-Jul-09 2:39
Cedric Moonen24-Jul-09 2:39 
QuestionAdd-in Pin
john563224-Jul-09 1:32
john563224-Jul-09 1:32 
AnswerRe: Add-in Pin
Mahesh Kulkarni24-Jul-09 1:39
Mahesh Kulkarni24-Jul-09 1:39 
QuestionModelessDialog Pin
kumar sanghvi24-Jul-09 1:23
kumar sanghvi24-Jul-09 1:23 
AnswerRe: ModelessDialog Pin
«_Superman_»24-Jul-09 4:20
professional«_Superman_»24-Jul-09 4:20 
QuestionHow Can I detect silence? Pin
Guillermo198024-Jul-09 0:30
Guillermo198024-Jul-09 0:30 
AnswerRe: How Can I detect silence? Pin
Rozis24-Jul-09 13:42
Rozis24-Jul-09 13:42 
QuestionIServerXMLHTTPRequest setproxy() method usage Pin
Ash_VCPP24-Jul-09 0:09
Ash_VCPP24-Jul-09 0:09 
QuestionSTL hashmap crashing Pin
Subrat Patnaik24-Jul-09 0:09
Subrat Patnaik24-Jul-09 0:09 
AnswerRe: STL hashmap crashing Pin
Roger Allen24-Jul-09 3:15
Roger Allen24-Jul-09 3:15 
QuestionHow to realize SAFEARRAY in C++ Pin
echo_yao24-Jul-09 0:03
echo_yao24-Jul-09 0:03 
AnswerRe: How to realize SAFEARRAY in C++ Pin
«_Superman_»24-Jul-09 4:08
professional«_Superman_»24-Jul-09 4:08 
GeneralRe: How to realize SAFEARRAY in C++ Pin
echo_yao26-Jul-09 16:25
echo_yao26-Jul-09 16:25 
QuestionHow to identify the microphone between several microphones Pin
Guillermo198023-Jul-09 23:52
Guillermo198023-Jul-09 23:52 
AnswerRe: How to identify the microphone between several microphones Pin
Swapnil Shah24-Jul-09 0:20
Swapnil Shah24-Jul-09 0:20 
QuestionCComPtr<iwshruntimelibrary::ifilesystem xmlns:iwshruntimelibrary="#unknown"> works fine in Win2003 and fails in Win2008 Std SP2</iwshruntimelibrary::ifilesystem> Pin
V K 223-Jul-09 23:14
V K 223-Jul-09 23:14 
AnswerRe: CComPtr works fine in Win2003 and fails in Win2008 Std SP2 Pin
Adam Roderick J24-Jul-09 1:33
Adam Roderick J24-Jul-09 1:33 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.