X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e9ed92a2fd4783aae589aabd660c12cb87704f79..e0176dd9fb716ad0a1a8804f0a93e16048f09054:/src/common/dbtable.cpp diff --git a/src/common/dbtable.cpp b/src/common/dbtable.cpp index a34a07fa41..1657a14c98 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(); @@ -410,7 +409,7 @@ ODBC 3.0 says to use this form /***************************** PRIVATE FUNCTIONS *****************************/ -bool wxDbTable::setCbValueForColumn(int columnIndex) +void wxDbTable::setCbValueForColumn(int columnIndex) { switch(colDefs[columnIndex].DbDataType) { @@ -442,10 +441,8 @@ bool wxDbTable::setCbValueForColumn(int columnIndex) if (colDefs[columnIndex].Null) colDefs[columnIndex].CbValue = SQL_NULL_DATA; else - if (colDefs[columnIndex].SqlCtype == SQL_C_BINARY) - colDefs[columnIndex].CbValue = 0; - else if (colDefs[columnIndex].SqlCtype == SQL_C_CHAR) - colDefs[columnIndex].CbValue = SQL_LEN_DATA_AT_EXEC(0); + if (colDefs[columnIndex].SqlCtype == SQL_C_CHAR) + colDefs[columnIndex].CbValue = SQL_NTS; else colDefs[columnIndex].CbValue = SQL_LEN_DATA_AT_EXEC(colDefs[columnIndex].SzDataObj); break; @@ -510,7 +507,7 @@ bool wxDbTable::bindParams(bool forUpdate) break; case DB_DATA_TYPE_BLOB: fSqlType = pDb->GetTypeInfBlob().FsqlType; - precision = -1; + precision = colDefs[i].SzDataObj; scale = 0; break; } @@ -530,7 +527,7 @@ bool wxDbTable::bindParams(bool forUpdate) { if (SQLBindParameter(hstmtInsert, colNo++, SQL_PARAM_INPUT, colDefs[i].SqlCtype, fSqlType, precision, scale, (UCHAR*) colDefs[i].PtrDataObj, - precision+1,&colDefs[i].CbValue) != SQL_SUCCESS) + precision+1, &colDefs[i].CbValue) != SQL_SUCCESS) { return(pDb->DispAllErrors(henv, hdbc, hstmtInsert)); } @@ -692,6 +689,7 @@ bool wxDbTable::execUpdate(const wxString &pSqlStmt) break; } } + retcode = SQLParamData(hstmtUpdate, &pParmID); } if (retcode == SQL_SUCCESS || retcode == SQL_NO_DATA_FOUND || @@ -867,7 +865,7 @@ bool wxDbTable::Open(bool checkPrivileges, bool checkTableExists) return(pDb->DispAllErrors(henv, hdbc, hstmtInsert)); } else - insertable= FALSE; + insertable = FALSE; } // Completed successfully @@ -1327,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 +1944,7 @@ int wxDbTable::Insert(void) break; } } + retcode = SQLParamData(hstmtInsert, &pParmID); } } @@ -2535,7 +2534,7 @@ bool wxDbTable::SetColNull(UWORD colNo, bool set) if (set) // Blank out the values in the member variable ClearMemberVar(colNo, FALSE); // Must call with FALSE here, or infinite recursion will happen - setCbValueForColumn(i); + setCbValueForColumn(colNo); return(TRUE); } @@ -2561,7 +2560,7 @@ bool wxDbTable::SetColNull(const wxString &colName, bool set) if (set) // Blank out the values in the member variable ClearMemberVar(colNo,FALSE); // Must call with FALSE here, or infinite recursion will happen - setCbValueForColumn(i); + setCbValueForColumn(colNo); return(TRUE); }