Click here to Skip to main content
16,005,552 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: this == 0x00000000 Pin
17-Dec-04 18:32
suss17-Dec-04 18:32 
GeneralRe: this == 0x00000000 Pin
Gurra_Koo17-Dec-04 21:35
Gurra_Koo17-Dec-04 21:35 
GeneralRe: this == 0x00000000 Pin
Member 58088117-Dec-04 22:06
Member 58088117-Dec-04 22:06 
GeneralGetting the HWND from Filename Pin
RedDragon2k17-Dec-04 11:12
RedDragon2k17-Dec-04 11:12 
GeneralRe: Getting the HWND from Filename Pin
Sujan Christo17-Dec-04 17:03
Sujan Christo17-Dec-04 17:03 
GeneralRe: Getting the HWND from Filename Pin
ThatsAlok17-Dec-04 17:15
ThatsAlok17-Dec-04 17:15 
GeneralRe: Getting the HWND from Filename Pin
RedDragon2k17-Dec-04 21:28
RedDragon2k17-Dec-04 21:28 
QuestionDoes anyone see a leak in this function? Pin
Turtle Hand17-Dec-04 10:40
Turtle Hand17-Dec-04 10:40 
WinDbg and Microsoft support believe there is a memory leak in this function. I don't see it, but I'm not a guru. Can you see it?

void CClientSession::WriteTableListGetQueryListRS(
BOOL bDetails,
CString strTable,
enum eTable tableSave,
BOOL & bDeniedAccess,
BOOL & bDeniedAccessOther,
CStringArray & arrFields,
CArray<long, long=""> & arrLookups,
long & lLookup,
long & lPrimarySortField,
CString & strPrimarySortField,
CString & strPrimarySortOrder,
CString & strFields,
CString & strJoin,
CString & strWhere,
CString & strSQL)
{
CString strField;
CString strListFields;
CString strOrderBy;

TRY
{
if (bDetails && !m_pExt->GetServerPtr()->GetDeptView(strTable, m_lDeptID))
return NULL;

bDeniedAccess = m_pExt->GetServerPtr()->GetTableAccess(strTable, FALSE,
m_stateCurrent.m_strMainTable, m_stateCurrent.m_lMainRecord,
m_stateCurrent.m_strDepTable, m_stateCurrent.m_lDepRecord,
m_lDeptID, m_lCompanyID);

if (GetFunc() == CMD_SUMMARY)
bDeniedAccessOther = m_pExt->GetServerPtr()->GetTableAccess(strTable, FALSE,
m_stateCurrent.m_strMainTable, m_stateCurrent.m_lMainRecord,
"", -1, m_lDeptID, m_lCompanyID);
else if (bDeniedAccess)
return NULL;

if (bDeniedAccessOther)
return NULL;

// strFields i.e.: Person.Last_Name, Statuses.Company_ID, etc.
int nFind = strPrimarySortField.Find('.');
strPrimarySortField = strPrimarySortField.Mid(nFind + 1);
if (m_pExt->GetServerPtr()->GetDependencyCount(m_stateCurrent.m_strMainTable))
m_stateCurrent.m_strDepTable = m_pExt->GetServerPtr()->GetDependency(m_stateCurrent.m_strMainTable, 0);

if (!bDetails)
{
if (strTable == m_stateCurrent.m_strMainTable && !m_stateCurrent.m_strDepTable.IsEmpty())
{
if (strJoin.Find(" LEFT OUTER JOIN " + m_stateCurrent.m_strDepTable) == -1)
{
strJoin = " LEFT OUTER JOIN " + m_stateCurrent.m_strDepTable + " ON " + m_stateCurrent.m_strDepTable + "." + m_stateCurrent.m_strMainTable + "_ID=" + m_stateCurrent.m_strMainTable + ".ID" + strJoin;
strFields = m_stateCurrent.m_strDepTable + ".ID," + strFields;
}
}
else if (m_stateCurrent.m_eTable == Sub)
{
strJoin = " INNER JOIN Statuses ON Statuses.ID = " + strTable + ".Person_IDS";
}

//Add to SELECT fields
strFields = "," + strFields + GetSQLFields(strTable);

// Search Fields
if (GetFunc() == CMD_SEARCH)
{
CString strSearchField;
if (!GetCookie(GetTable() + ".SearchText").IsEmpty())
{
strSearchField = GetCookie(m_stateCurrent.m_strMainTable + ".SearchField");
if (strFields.Find("," + strSearchField + ",") == -1)
if (strFields.Find(strSearchField, strFields.GetLength() - strSearchField.GetLength()) == -1)
strFields += "," + strSearchField;
}
if (!GetCookie(GetTable() + ".SearchText2").IsEmpty())
{
strSearchField = GetCookie(m_stateCurrent.m_strMainTable + ".SearchField2");
if (strFields.Find("," + strSearchField + ",") == -1)
if (strFields.Find(strSearchField, strFields.GetLength() - strSearchField.GetLength()) == -1)
strFields += "," + strSearchField;
}
strSearchField.Empty();
}

//Build Sort Order
CString strColumn;
for(int nColumn = 0 ; nColumn < 3 ; nColumn++)
{
strColumn.Format("%s.Sort%d", strTable, nColumn);
strColumn = GetCookie(strColumn);
nFind = strColumn.Find('.');
if (nFind != -1)
strColumn = strColumn.Mid(nFind + 1);
if (!strColumn.IsEmpty())
if (strOrderBy.Find(strColumn) == -1)
AddSortColumn(strTable, strColumn, strOrderBy);
}

//Build Sort Order part 2
if (strOrderBy.IsEmpty())
{
CString strOrder = m_pExt->GetServerPtr()->GetDefaultOrderBy(strTable) + ",";
CString strSort;
nFind = strOrder.FindOneOf(", ");
nColumn = 0;
while (nFind != -1)
{
strOrderBy += strTable + "." + strOrder.Left(nFind);

if (strOrder[nFind] == ' ')
nFind = strOrder.Find(',');
strOrder = strOrder.Mid(nFind + 1);
nFind = strOrder.FindOneOf(", ");
if (nFind != -1)
strOrderBy += ',';
}
strOrder.Empty();
strSort.Empty();
}

CString strTableField;
strFields += ",";
strFields = strFields.Mid(1);
int nDot;
long lField = 0;

/*
strListFields
*/
nFind = strFields.Find(',');
while (nFind != -1)
{
strTableField = strFields.Left(nFind);
nDot = strTableField.Find('.');
if (nDot != -1)
{
strField = strTableField.Mid(nDot + 1);
strTableField.ReleaseBuffer(nDot);
}
else
{
strField = strTableField;
strTableField = strTable;
}
strFields = strFields.Mid(nFind + 1);

lLookup = m_pExt->GetServerPtr()->GetLookup(strTableField, strField);
arrLookups.Add(lLookup);
arrFields.Add(strField);

strTableField = AddFieldSQL(lLookup, lField, strJoin, strWhere, strOrderBy);

//Only display columns that aren't set to hidden in TableFields.Dept_Visible
if (m_pExt->GetServerPtr()->GetLookupHiddenView(lLookup, m_lDeptID) == FALSE)
{
if (!strListFields.IsEmpty())
strListFields += ",";
strListFields += strTableField;
}

if (lPrimarySortField == -1
&& m_pExt->GetServerPtr()->GetLookupTable(lLookup) + "." + strField == strPrimarySortField)
{
lPrimarySortField = lField;
strPrimarySortField = strTableField;
}

lField++;

nFind = strFields.Find(',');
}
strColumn.Empty();
strTableField.Empty();
}
else
strListFields = "COUNT(ID)";

strSQL = "SELECT " + strListFields + " FROM " + strTable + strJoin + strWhere;
if (!strOrderBy.IsEmpty())
strSQL += " ORDER BY " + strOrderBy;
OutputDebugString(strSQL + "\r\n");
}
CATCH_ALL(e)
{
DumpError(e, __FILE__, __LINE__);
m_stateCurrent.m_eTable = tableSave;
return NULL;
}
END_CATCH_ALL

WriteResponseDebug(strSQL);

strSQL.Empty();
strField.Empty();
strListFields.Empty();
strOrderBy.Empty();
}


<signature>
It's good to live,
Josef Wainz
Software Developer

GeneralActiveX Pin
Anthony988717-Dec-04 8:05
Anthony988717-Dec-04 8:05 
GeneralRe: ActiveX Pin
Renjith Ramachandran17-Dec-04 22:14
Renjith Ramachandran17-Dec-04 22:14 
GeneralTruecolor icon in Win NT4 Pin
Cyrus Dang17-Dec-04 6:55
Cyrus Dang17-Dec-04 6:55 
GeneralRe: Truecolor icon in Win NT4 Pin
Anders Molin17-Dec-04 16:02
professionalAnders Molin17-Dec-04 16:02 
GeneralRe: Truecolor icon in Win NT4 Pin
Cyrus Dang17-Dec-04 20:01
Cyrus Dang17-Dec-04 20:01 
QuestionWhere did the &quot;\n&quot; went ???? Pin
Shay Harel17-Dec-04 5:57
Shay Harel17-Dec-04 5:57 
AnswerRe: Where did the &quot;\n&quot; went ???? Pin
Member 58088117-Dec-04 17:57
Member 58088117-Dec-04 17:57 
GeneralDrawDragRect Help Pin
poiut17-Dec-04 5:55
poiut17-Dec-04 5:55 
GeneralRe: DrawDragRect Help Pin
Anonymous20-Dec-04 5:23
Anonymous20-Dec-04 5:23 
GeneralDoModal message loops Pin
christopheredill17-Dec-04 5:44
christopheredill17-Dec-04 5:44 
Generalcaveats when using _malloc_dbg Pin
Maximilien17-Dec-04 5:39
Maximilien17-Dec-04 5:39 
GeneralRe: caveats when using _malloc_dbg Pin
Bo Hunter17-Dec-04 12:03
Bo Hunter17-Dec-04 12:03 
GeneralRe: caveats when using _malloc_dbg Pin
peterchen17-Dec-04 22:09
peterchen17-Dec-04 22:09 
GeneralRe: caveats when using _malloc_dbg Pin
ThatsAlok17-Dec-04 22:39
ThatsAlok17-Dec-04 22:39 
GeneralRe: caveats when using _malloc_dbg Pin
peterchen17-Dec-04 23:09
peterchen17-Dec-04 23:09 
GeneralRe: caveats when using _malloc_dbg Pin
ThatsAlok18-Dec-04 0:01
ThatsAlok18-Dec-04 0:01 
GeneralAlt+Tab replacement Pin
User 665817-Dec-04 4:50
User 665817-Dec-04 4:50 

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.