X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fd9b9198f8b180914e05c7fcb8b6779587b4e667..8ae4f08661d7b324d5cd7aa16ab1a7b2810d94f2:/src/common/dbtable.cpp diff --git a/src/common/dbtable.cpp b/src/common/dbtable.cpp index 5db3049439..bfa0dd10c8 100644 --- a/src/common/dbtable.cpp +++ b/src/common/dbtable.cpp @@ -12,12 +12,12 @@ // Notice: This class library and its intellectual design are free of charge for use, // modification, enhancement, debugging under the following conditions: // 1) These classes may only be used as part of the implementation of a -// wxWindows-based application -// 2) All enhancements and bug fixes are to be submitted back to the wxWindows -// user groups free of all charges for use with the wxWindows library. +// wxWidgets-based application +// 2) All enhancements and bug fixes are to be submitted back to the wxWidgets +// user groups free of all charges for use with the wxWidgets library. // 3) These classes may not be distributed as part of any other class library, // DLL, text (written or electronic), other than a complete distribution of -// the wxWindows GUI development toolkit. +// the wxWidgets GUI development toolkit. /////////////////////////////////////////////////////////////////////////////// /* @@ -321,18 +321,17 @@ void wxDbTable::cleanup() #ifdef __WXDEBUG__ if (tableID) { - TablesInUse.DeleteContents(TRUE); bool found = FALSE; - wxNode *pNode; + wxList::compatibility_iterator pNode; pNode = TablesInUse.GetFirst(); while (pNode && !found) { if (((wxTablesInUse *)pNode->GetData())->tableID == tableID) { found = TRUE; - if (!TablesInUse.DeleteNode(pNode)) - wxLogDebug (s,wxT("Unable to delete node!")); + delete (wxTablesInUse *)pNode->GetData(); + TablesInUse.Erase(pNode); } else pNode = pNode->GetNext(); @@ -1071,7 +1070,7 @@ void wxDbTable::BuildSelectStmt(wxString &pSqlStmt, int typeOfSelect, bool disti { tStr = colDefs[i].ColName; // If joining tables, the base table column names must be qualified to avoid ambiguity - if ((appendFromClause || pDb->Dbms() == dbmsACCESS) && !tStr.Find(wxT('.'))) + if ((appendFromClause || pDb->Dbms() == dbmsACCESS) && tStr.Find(wxT('.')) == wxNOT_FOUND) { pSqlStmt += pDb->SQLTableName(queryTableName.c_str()); pSqlStmt += wxT("."); @@ -1284,7 +1283,7 @@ void wxDbTable::BuildWhereClause(wxString &pWhereClause, int typeOfWhere, // Concatenate where phrase for the column wxString tStr = colDefs[colNo].ColName; - if (qualTableName.Length() && !tStr.Find(wxT('.'))) + if (qualTableName.Length() && tStr.Find(wxT('.')) == wxNOT_FOUND) { pWhereClause += pDb->SQLTableName(qualTableName); pWhereClause += wxT("."); @@ -1326,7 +1325,7 @@ void wxDbTable::BuildWhereClause(wxString &pWhereClause, int typeOfWhere, wxString strMsg; strMsg.Printf(wxT("wxDbTable::bindParams(): Unknown column type for colDefs %d colName %s"), colNo,colDefs[colNo].ColName); - wxFAIL_MSG(wxT(strMsg)); + wxFAIL_MSG(strMsg.c_str()); } break; } @@ -1946,6 +1945,14 @@ int wxDbTable::Insert(void) } } retcode = SQLParamData(hstmtInsert, &pParmID); + if (retcode != SQL_SUCCESS && + retcode != SQL_SUCCESS_WITH_INFO) + { + // record was not inserted + pDb->DispNextError(); + pDb->DispAllErrors(henv, hdbc, hstmtInsert); + return(DB_FAILURE); + } } }