]> git.saurik.com Git - wxWidgets.git/commitdiff
Non-standard abbreviations of words in function/variable names changed to standard...
authorGeorge Tasker <gtasker@allenbrook.com>
Tue, 28 Dec 2004 21:10:12 +0000 (21:10 +0000)
committerGeorge Tasker <gtasker@allenbrook.com>
Tue, 28 Dec 2004 21:10:12 +0000 (21:10 +0000)
If SetColDef is called with an out of range index, the function in debug will throw an assert msg, and call wxLogDebug(), and then return without doing anything.  The function now returns a boolean to indicate if the column definition was successfully created or not

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31178 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/dbtable.h
src/common/dbgrid.cpp
src/common/dbtable.cpp

index a09f6fe2cf8171ae25436b1872fcfb0dbfb76633..36e94cb5fd30e3dd4a61fa391a1b6174146e3498 100644 (file)
@@ -139,7 +139,7 @@ private:
     wxString    tablePath;                                 // needed for dBase tables
     wxString    tableName;                                 // Table name
     wxString    queryTableName;                            // Query Table Name
-    UWORD       noCols;                                    // # of columns in the table
+    UWORD       m_numCols;                               // # of columns in the table
     bool        queryOnly;                                 // Query Only, no inserts, updates or deletes
 
     // Column Definitions
@@ -173,7 +173,7 @@ public:
     char        tablePath[wxDB_PATH_MAX];                  // needed for dBase tables
     char        tableName[DB_MAX_TABLE_NAME_LEN+1];        // Table name
     char        queryTableName[DB_MAX_TABLE_NAME_LEN+1];   // Query Table Name
-    UWORD       noCols;                                    // # of columns in the table
+    UWORD       m_numCols;                               // # of columns in the table
     bool        queryOnly;                                 // Query Only, no inserts, updates or deletes
 
     // Column Definitions
@@ -211,7 +211,7 @@ public:
     const wxString &GetQueryTableName()  { return queryTableName; }
     const wxString &GetTablePath()       { return tablePath; }
 
-    UWORD           GetNumberOfColumns() { return noCols; }  // number of "defined" columns for this wxDbTable instance
+    UWORD           GetNumberOfColumns() { return m_numCols; }  // number of "defined" columns for this wxDbTable instance
 
     const wxString &GetFromClause()      { return from; }
     const wxString &GetOrderByClause()   { return orderBy; }
@@ -284,13 +284,16 @@ public:
                            { BuildWhereClause(pWhereClause,typeOfWhere,qualTableName,useLikeComparison); }
 #endif
     bool            CanSelectForUpdate(void);
-    bool            CanUpdByROWID(void);
-    void            ClearMemberVar(UWORD colNo, bool setToNull=false);
+#if wxODBC_BACKWARD_COMPATABILITY
+    bool            CanUpdByROWID(void) { return CanUpdateByRowID(); };
+#endif
+    bool            CanUpdateByROWID(void);
+    void            ClearMemberVar(UWORD colNumber, bool setToNull=false);
     void            ClearMemberVars(bool setToNull=false);
     bool            SetQueryTimeout(UDWORD nSeconds);
 
     wxDbColDef     *GetColDefs() { return colDefs; }
-    void            SetColDefs(UWORD index, const wxString &fieldName, int dataType,
+    bool            SetColDefs(UWORD index, const wxString &fieldName, int dataType,
                                void *pData, SWORD cType,
                                int size, bool keyField = false, bool upd = true,
                                bool insAllow = true, bool derivedCol = false);
@@ -309,12 +312,12 @@ public:
     ULONG           Count(const wxString &args=_T("*"));
     int             DB_STATUS(void) { return(pDb->DB_STATUS); }
 
-    bool            IsColNull(UWORD colNo) const;
-    bool            SetColNull(UWORD colNo, bool set=true);
+    bool            IsColNull(UWORD colNumber) const;
+    bool            SetColNull(UWORD colNumber, bool set=true);
     bool            SetColNull(const wxString &colName, bool set=true);
 #if wxODBC_BACKWARD_COMPATABILITY
 // The following member functions are deprecated.  You should use the SetColNull()
-    bool            SetNull(int colNo, bool set=true) { return (SetNull(colNo,set)); }
+    bool            SetNull(int colNumber, bool set=true) { return (SetNull(colNumber,set)); }
     bool            SetNull(const char *colName, bool set=true) { return (SetNull(colName,set)); }
 #endif
 #ifdef __WXDEBUG__
@@ -324,8 +327,12 @@ public:
 //TODO: Need to Document
     typedef     enum  { WX_ROW_MODE_QUERY , WX_ROW_MODE_INDIVIDUAL } rowmode_t;
     virtual     void         SetRowMode(const rowmode_t rowmode);
-    virtual     wxVariant    GetCol(const int colNo) const ;
-    virtual     void         SetCol(const int colNo, const wxVariant value);
+#if wxODBC_BACKWARD_COMPATABILITY
+    virtual     wxVariant    GetCol(const int colNumber) const { return GetColumn(colNumber); };
+    virtual     void         SetCol(const int colNumber, const wxVariant value)  { return SetColumn(colNumber, value); };
+#endif
+    virtual     wxVariant    GetColumn(const int colNumber) const ;
+    virtual     void         SetColumn(const int colNumber, const wxVariant value);
     virtual     GenericKey   GetKey(void);
     virtual     void         SetKey(const GenericKey &key);
 
index ed58753424166cd86fa0168fe2bf785a308db5d7..af7ae488dc5a896883bfbe871e65a87c2a90d905 100644 (file)
@@ -448,7 +448,7 @@ long wxDbGridTableBase::GetValueAsLong(int row, int col)
         (sqltype == SQL_C_SLONG) ||
         (sqltype == SQL_C_ULONG))
     {
-        wxVariant val = m_data->GetCol(m_ColInfo[col].DbCol);
+        wxVariant val = m_data->GetColumn(m_ColInfo[col].DbCol);
         return val.GetLong();
     }
     wxFAIL_MSG (_T("unknown column, "));
@@ -473,7 +473,7 @@ double wxDbGridTableBase::GetValueAsDouble(int row, int col)
         (sqltype == SQL_C_FLOAT) ||
         (sqltype == SQL_C_DOUBLE))
     {
-        wxVariant val = m_data->GetCol(m_ColInfo[col].DbCol);
+        wxVariant val = m_data->GetColumn(m_ColInfo[col].DbCol);
         return val.GetDouble();
     }
     wxFAIL_MSG (_T("unknown column"));
@@ -496,7 +496,7 @@ bool wxDbGridTableBase::GetValueAsBool(int row, int col)
         (sqltype == SQL_C_SLONG) ||
         (sqltype == SQL_C_ULONG))
     {
-        wxVariant val = m_data->GetCol(m_ColInfo[col].DbCol);
+        wxVariant val = m_data->GetColumn(m_ColInfo[col].DbCol);
         return val.GetBool();
     }
     wxFAIL_MSG (_T("unknown column, "));
@@ -525,7 +525,7 @@ void* wxDbGridTableBase::GetValueAsCustom(int row, int col, const wxString& type
             (sqltype == SQL_C_TIME) ||
             (sqltype == SQL_C_TIMESTAMP))
         {
-            wxVariant val = m_data->GetCol(m_ColInfo[col].DbCol);
+            wxVariant val = m_data->GetColumn(m_ColInfo[col].DbCol);
             return new wxDateTime(val.GetDateTime());
         }
     }
@@ -562,7 +562,7 @@ void wxDbGridTableBase::SetValueAsCustom(int row, int col, const wxString& typeN
             }
             wxVariant val(date);
             m_rowmodified = true;
-            m_data->SetCol(m_ColInfo[col].DbCol,val);
+            m_data->SetColumn(m_ColInfo[col].DbCol,val);
         }
     }
     wxFAIL_MSG (_T("unknown column data type"));
@@ -594,7 +594,7 @@ wxString wxDbGridTableBase::GetValue(int row, int col)
     wxLogDebug(wxT("GetValue() on %i,%i"),row,col);
 
     ValidateRow(row);
-    wxVariant val = m_data->GetCol(m_ColInfo[col].DbCol);
+    wxVariant val = m_data->GetColumn(m_ColInfo[col].DbCol);
     wxLogDebug(wxT("\tReturning \"%s\"\n"),val.GetString().c_str());
 
     return val.GetString();
@@ -609,7 +609,7 @@ void wxDbGridTableBase::SetValue(int row, int col,const wxString& value)
     wxVariant val(value);
 
     m_rowmodified = true;
-    m_data->SetCol(m_ColInfo[col].DbCol,val);
+    m_data->SetColumn(m_ColInfo[col].DbCol,val);
 }
 
 
@@ -621,7 +621,7 @@ void wxDbGridTableBase::SetValueAsLong(int row, int col, long value)
     wxVariant val(value);
 
     m_rowmodified = true;
-    m_data->SetCol(m_ColInfo[col].DbCol,val);
+    m_data->SetColumn(m_ColInfo[col].DbCol,val);
 }
 
 
@@ -633,7 +633,7 @@ void wxDbGridTableBase::SetValueAsDouble(int row, int col, double value)
     wxVariant val(value);
 
     m_rowmodified = true;
-    m_data->SetCol(m_ColInfo[col].DbCol,val);
+    m_data->SetColumn(m_ColInfo[col].DbCol,val);
 
 }
 
@@ -646,7 +646,7 @@ void wxDbGridTableBase::SetValueAsBool(int row, int col, bool value)
     wxVariant val(value);
 
     m_rowmodified = true;
-    m_data->SetCol(m_ColInfo[col].DbCol,val);
+    m_data->SetColumn(m_ColInfo[col].DbCol,val);
 }
 
 
index 013b9094efe4d3c724a391b6df12343b46b7010a..1eb798fec354e37c3dcd6b5efac3a9b9bb8e6312 100644 (file)
@@ -152,7 +152,7 @@ bool wxDbTable::initialize(wxDb *pwxDb, const wxString &tblName, const UWORD num
     hstmtInternal       = 0;
     colDefs             = 0;
     tableID             = 0;
-    noCols              = numColumns;               // Number of cols in the table
+    m_numCols           = numColumns;               // Number of columns in the table
     where.Empty();                                  // Where clause
     orderBy.Empty();                                // Order By clause
     from.Empty();                                   // From clause
@@ -212,8 +212,8 @@ bool wxDbTable::initialize(wxDb *pwxDb, const wxString &tblName, const UWORD num
     hdbc = pDb->GetHDBC();
 
     // Allocate space for column definitions
-    if (noCols)
-        colDefs = new wxDbColDef[noCols];  // Points to the first column definition
+    if (m_numCols)
+        colDefs = new wxDbColDef[m_numCols];  // Points to the first column definition
 
     // Allocate statement handles for the table
     if (!queryOnly)
@@ -466,9 +466,9 @@ bool wxDbTable::bindParams(bool forUpdate)
     // Bind each column of the table that should be bound
     // to a parameter marker
     int i;
-    UWORD colNo;
+    UWORD colNumber;
 
-    for (i=0, colNo=1; i < noCols; i++)
+    for (i=0, colNumber=1; i < m_numCols; i++)
     {
         if (forUpdate)
         {
@@ -519,7 +519,7 @@ bool wxDbTable::bindParams(bool forUpdate)
 
         if (forUpdate)
         {
-            if (SQLBindParameter(hstmtUpdate, colNo++, SQL_PARAM_INPUT, colDefs[i].SqlCtype,
+            if (SQLBindParameter(hstmtUpdate, colNumber++, SQL_PARAM_INPUT, colDefs[i].SqlCtype,
                                  fSqlType, precision, scale, (UCHAR*) colDefs[i].PtrDataObj,
                                  precision+1, &colDefs[i].CbValue) != SQL_SUCCESS)
             {
@@ -528,7 +528,7 @@ bool wxDbTable::bindParams(bool forUpdate)
         }
         else
         {
-            if (SQLBindParameter(hstmtInsert, colNo++, SQL_PARAM_INPUT, colDefs[i].SqlCtype,
+            if (SQLBindParameter(hstmtInsert, colNumber++, SQL_PARAM_INPUT, colDefs[i].SqlCtype,
                                  fSqlType, precision, scale, (UCHAR*) colDefs[i].PtrDataObj,
                                  precision+1, &colDefs[i].CbValue) != SQL_SUCCESS)
             {
@@ -564,7 +564,7 @@ bool wxDbTable::bindCols(HSTMT cursor)
 
     // Bind each column of the table to a memory address for fetching data
     UWORD i;
-    for (i = 0; i < noCols; i++)
+    for (i = 0; i < m_numCols; i++)
     {
         cb = colDefs[i].CbValue;
         if (SQLBindCol(cursor, (UWORD)(i+1), colDefs[i].SqlCtype, (UCHAR*) colDefs[i].PtrDataObj,
@@ -602,7 +602,7 @@ bool wxDbTable::getRec(UWORD fetchType)
             // Set the Null member variable to indicate the Null state
             // of each column just read in.
             int i;
-            for (i = 0; i < noCols; i++)
+            for (i = 0; i < m_numCols; i++)
                 colDefs[i].Null = (colDefs[i].CbValue == SQL_NULL_DATA);
         }
     }
@@ -622,7 +622,7 @@ bool wxDbTable::getRec(UWORD fetchType)
             // Set the Null member variable to indicate the Null state
             // of each column just read in.
             int i;
-            for (i = 0; i < noCols; i++)
+            for (i = 0; i < m_numCols; i++)
                 colDefs[i].Null = (colDefs[i].CbValue == SQL_NULL_DATA);
         }
     }
@@ -678,7 +678,7 @@ bool wxDbTable::execUpdate(const wxString &pSqlStmt)
         {
             // Find the parameter
             int i;
-            for (i=0; i < noCols; i++)
+            for (i=0; i < m_numCols; i++)
             {
                 if (colDefs[i].PtrDataObj == pParmID)
                 {
@@ -760,7 +760,7 @@ bool wxDbTable::Open(bool checkPrivileges, bool checkTableExists)
     // Calculate the maximum size of the concatenated
     // keys for use with wxDbGrid
     m_keysize = 0;
-    for (i=0; i < noCols; i++)
+    for (i=0; i < m_numCols; i++)
     {
         if (colDefs[i].KeyField)
         {
@@ -829,12 +829,12 @@ bool wxDbTable::Open(bool checkPrivileges, bool checkTableExists)
      */
 
     // Build an insert statement using parameter markers
-    if (!queryOnly && noCols > 0)
+    if (!queryOnly && m_numCols > 0)
     {
         bool needComma = false;
         sqlStmt.Printf(wxT("INSERT INTO %s ("),
                        pDb->SQLTableName(tableName.c_str()).c_str());
-        for (i = 0; i < noCols; i++)
+        for (i = 0; i < m_numCols; i++)
         {
             if (! colDefs[i].InsertAllowed)
                 continue;
@@ -849,7 +849,7 @@ bool wxDbTable::Open(bool checkPrivileges, bool checkTableExists)
 
         int insertableCount = 0;
 
-        for (i = 0; i < noCols; i++)
+        for (i = 0; i < m_numCols; i++)
         {
             if (! colDefs[i].InsertAllowed)
                 continue;
@@ -1000,7 +1000,7 @@ void wxDbTable::BuildDeleteStmt(wxString &pSqlStmt, int typeOfDel, const wxStrin
             // If the datasource supports the ROWID column, build
             // the where on ROWID for efficiency purposes.
             // e.g. DELETE FROM PARTS WHERE ROWID = '111.222.333'
-            if (CanUpdByROWID())
+            if (CanUpdateByROWID())
             {
                 SDWORD cb;
                 wxChar   rowid[wxDB_ROWID_LEN+1];
@@ -1008,7 +1008,7 @@ void wxDbTable::BuildDeleteStmt(wxString &pSqlStmt, int typeOfDel, const wxStrin
                 // Get the ROWID value.  If not successful retreiving the ROWID,
                 // simply fall down through the code and build the WHERE clause
                 // based on the key fields.
-                if (SQLGetData(hstmt, (UWORD)(noCols+1), SQL_C_WXCHAR, (UCHAR*) rowid, sizeof(rowid), &cb) == SQL_SUCCESS)
+                if (SQLGetData(hstmt, (UWORD)(m_numCols+1), SQL_C_WXCHAR, (UCHAR*) rowid, sizeof(rowid), &cb) == SQL_SUCCESS)
                 {
                     pSqlStmt += wxT("ROWID = '");
                     pSqlStmt += rowid;
@@ -1069,7 +1069,7 @@ void wxDbTable::BuildSelectStmt(wxString &pSqlStmt, int typeOfSelect, bool disti
     // Add the column list
     int i;
     wxString tStr;
-    for (i = 0; i < noCols; i++)
+    for (i = 0; i < m_numCols; i++)
     {
         tStr = colDefs[i].ColName;
         // If joining tables, the base table column names must be qualified to avoid ambiguity
@@ -1079,13 +1079,13 @@ void wxDbTable::BuildSelectStmt(wxString &pSqlStmt, int typeOfSelect, bool disti
             pSqlStmt += wxT(".");
         }
         pSqlStmt += pDb->SQLColumnName(colDefs[i].ColName);
-        if (i + 1 < noCols)
+        if (i + 1 < m_numCols)
             pSqlStmt += wxT(",");
     }
 
     // If the datasource supports ROWID, get this column as well.  Exception: Don't retrieve
     // the ROWID if querying distinct records.  The rowid will always be unique.
-    if (!distinct && CanUpdByROWID())
+    if (!distinct && CanUpdateByROWID())
     {
         // If joining tables, the base table column names must be qualified to avoid ambiguity
         if (appendFromClause || pDb->Dbms() == dbmsACCESS)
@@ -1194,7 +1194,7 @@ void wxDbTable::BuildUpdateStmt(wxString &pSqlStmt, int typeOfUpd, const wxStrin
 
     // Append a list of columns to be updated
     int i;
-    for (i = 0; i < noCols; i++)
+    for (i = 0; i < m_numCols; i++)
     {
         // Only append Updateable columns
         if (colDefs[i].Updateable)
@@ -1218,7 +1218,7 @@ void wxDbTable::BuildUpdateStmt(wxString &pSqlStmt, int typeOfUpd, const wxStrin
             // If the datasource supports the ROWID column, build
             // the where on ROWID for efficiency purposes.
             // e.g. UPDATE PARTS SET Col1 = ?, Col2 = ? WHERE ROWID = '111.222.333'
-            if (CanUpdByROWID())
+            if (CanUpdateByROWID())
             {
                 SDWORD cb;
                 wxChar rowid[wxDB_ROWID_LEN+1];
@@ -1226,7 +1226,7 @@ void wxDbTable::BuildUpdateStmt(wxString &pSqlStmt, int typeOfUpd, const wxStrin
                 // Get the ROWID value.  If not successful retreiving the ROWID,
                 // simply fall down through the code and build the WHERE clause
                 // based on the key fields.
-                if (SQLGetData(hstmt, (UWORD)(noCols+1), SQL_C_WXCHAR, (UCHAR*) rowid, sizeof(rowid), &cb) == SQL_SUCCESS)
+                if (SQLGetData(hstmt, (UWORD)(m_numCols+1), SQL_C_WXCHAR, (UCHAR*) rowid, sizeof(rowid), &cb) == SQL_SUCCESS)
                 {
                     pSqlStmt += wxT("ROWID = '");
                     pSqlStmt += rowid;
@@ -1267,15 +1267,15 @@ void wxDbTable::BuildWhereClause(wxString &pWhereClause, int typeOfWhere,
     wxString colValue;
 
     // Loop through the columns building a where clause as you go
-    int colNo;
-    for (colNo = 0; colNo < noCols; colNo++)
+    int colNumber;
+    for (colNumber = 0; colNumber < m_numCols; colNumber++)
     {
         // Determine if this column should be included in the WHERE clause
-        if ((typeOfWhere == DB_WHERE_KEYFIELDS && colDefs[colNo].KeyField) ||
-             (typeOfWhere == DB_WHERE_MATCHING  && (!IsColNull((UWORD)colNo))))
+        if ((typeOfWhere == DB_WHERE_KEYFIELDS && colDefs[colNumber].KeyField) ||
+             (typeOfWhere == DB_WHERE_MATCHING  && (!IsColNull((UWORD)colNumber))))
         {
             // Skip over timestamp columns
-            if (colDefs[colNo].SqlCtype == SQL_C_TIMESTAMP)
+            if (colDefs[colNumber].SqlCtype == SQL_C_TIMESTAMP)
                 continue;
             // If there is more than 1 column, join them with the keyword "AND"
             if (moreThanOneColumn)
@@ -1284,54 +1284,54 @@ void wxDbTable::BuildWhereClause(wxString &pWhereClause, int typeOfWhere,
                 moreThanOneColumn = true;
 
             // Concatenate where phrase for the column
-            wxString tStr = colDefs[colNo].ColName;
+            wxString tStr = colDefs[colNumber].ColName;
 
             if (qualTableName.Length() && tStr.Find(wxT('.')) == wxNOT_FOUND)
             {
                 pWhereClause += pDb->SQLTableName(qualTableName);
                 pWhereClause += wxT(".");
             }
-            pWhereClause += pDb->SQLColumnName(colDefs[colNo].ColName);
+            pWhereClause += pDb->SQLColumnName(colDefs[colNumber].ColName);
 
-            if (useLikeComparison && (colDefs[colNo].SqlCtype == SQL_C_WXCHAR))
+            if (useLikeComparison && (colDefs[colNumber].SqlCtype == SQL_C_WXCHAR))
                 pWhereClause += wxT(" LIKE ");
             else
                 pWhereClause += wxT(" = ");
 
-            switch(colDefs[colNo].SqlCtype)
+            switch(colDefs[colNumber].SqlCtype)
             {
                 case SQL_C_CHAR:
 #ifndef __UNIX__
                 case SQL_C_WCHAR:
 #endif                 
                 //case SQL_C_WXCHAR:  SQL_C_WXCHAR is covered by either SQL_C_CHAR or SQL_C_WCHAR
-                    colValue.Printf(wxT("'%s'"), (UCHAR FAR *) colDefs[colNo].PtrDataObj);
+                    colValue.Printf(wxT("'%s'"), (UCHAR FAR *) colDefs[colNumber].PtrDataObj);
                     break;
                 case SQL_C_SHORT:
                 case SQL_C_SSHORT:
-                    colValue.Printf(wxT("%hi"), *((SWORD *) colDefs[colNo].PtrDataObj));
+                    colValue.Printf(wxT("%hi"), *((SWORD *) colDefs[colNumber].PtrDataObj));
                     break;
                 case SQL_C_USHORT:
-                    colValue.Printf(wxT("%hu"), *((UWORD *) colDefs[colNo].PtrDataObj));
+                    colValue.Printf(wxT("%hu"), *((UWORD *) colDefs[colNumber].PtrDataObj));
                     break;
                 case SQL_C_LONG:
                 case SQL_C_SLONG:
-                    colValue.Printf(wxT("%li"), *((SDWORD *) colDefs[colNo].PtrDataObj));
+                    colValue.Printf(wxT("%li"), *((SDWORD *) colDefs[colNumber].PtrDataObj));
                     break;
                 case SQL_C_ULONG:
-                    colValue.Printf(wxT("%lu"), *((UDWORD *) colDefs[colNo].PtrDataObj));
+                    colValue.Printf(wxT("%lu"), *((UDWORD *) colDefs[colNumber].PtrDataObj));
                     break;
                 case SQL_C_FLOAT:
-                    colValue.Printf(wxT("%.6f"), *((SFLOAT *) colDefs[colNo].PtrDataObj));
+                    colValue.Printf(wxT("%.6f"), *((SFLOAT *) colDefs[colNumber].PtrDataObj));
                     break;
                 case SQL_C_DOUBLE:
-                    colValue.Printf(wxT("%.6f"), *((SDOUBLE *) colDefs[colNo].PtrDataObj));
+                    colValue.Printf(wxT("%.6f"), *((SDOUBLE *) colDefs[colNumber].PtrDataObj));
                     break;
                 default:
                     {
                         wxString strMsg;
                         strMsg.Printf(wxT("wxDbTable::bindParams(): Unknown column type for colDefs %d colName %s"),
-                                    colNo,colDefs[colNo].ColName);
+                                    colNumber,colDefs[colNumber].ColName);
                         wxFAIL_MSG(strMsg.c_str());
                     }
                     break;
@@ -1400,7 +1400,7 @@ bool wxDbTable::CreateTable(bool attemptDrop)
 
     // Create the table
 #ifdef DBDEBUG_CONSOLE
-    for (i = 0; i < noCols; i++)
+    for (i = 0; i < m_numCols; i++)
     {
         // Exclude derived columns since they are NOT part of the base table
         if (colDefs[i].DerivedCol)
@@ -1434,7 +1434,7 @@ bool wxDbTable::CreateTable(bool attemptDrop)
     sqlStmt.Printf(wxT("CREATE TABLE %s ("),
                    pDb->SQLTableName(tableName.c_str()).c_str());
 
-    for (i = 0; i < noCols; i++)
+    for (i = 0; i < m_numCols; i++)
     {
         // Exclude derived columns since they are NOT part of the base table
         if (colDefs[i].DerivedCol)
@@ -1491,7 +1491,7 @@ bool wxDbTable::CreateTable(bool attemptDrop)
         needComma = true;
     }
     // If there is a primary key defined, include it in the create statement
-    for (i = j = 0; i < noCols; i++)
+    for (i = j = 0; i < m_numCols; i++)
     {
         if (colDefs[i].KeyField)
         {
@@ -1535,7 +1535,7 @@ bool wxDbTable::CreateTable(bool attemptDrop)
         }
 
         // List column name(s) of column(s) comprising the primary key
-        for (i = j = 0; i < noCols; i++)
+        for (i = j = 0; i < m_numCols; i++)
         {
             if (colDefs[i].KeyField)
             {
@@ -1678,7 +1678,7 @@ bool wxDbTable::CreateIndex(const wxString &idxName, bool unique, UWORD noIdxCol
             // index column name.  We need to do this to get the DB_DATA_TYPE of
             // the index column, as MySQL's syntax for the ALTER column requires
             // this information
-            while (!found && (j < this->noCols))
+            while (!found && (j < this->m_numCols))
             {
                 if (wxStrcmp(colDefs[j].ColName,pIdxDefs[i].ColName) == 0)
                     found = true;
@@ -1741,7 +1741,7 @@ bool wxDbTable::CreateIndex(const wxString &idxName, bool unique, UWORD noIdxCol
         {
             // Find the details on this column
             int j;
-            for ( j = 0; j < noCols; ++j )
+            for ( j = 0; j < m_numCols; ++j )
             {
                 if ( wxStrcmp( pIdxDefs[i].ColName, colDefs[j].ColName ) == 0 )
                 {
@@ -1874,30 +1874,30 @@ bool wxDbTable::DropIndex(const wxString &idxName)
 /********** wxDbTable::SetOrderByColNums() **********/
 bool wxDbTable::SetOrderByColNums(UWORD first, ... )
 {
-    int        colNo = first;  // using 'int' to be able to look for wxDB_NO_MORE_COLUN_NUMBERS
+    int         colNumber = first;  // using 'int' to be able to look for wxDB_NO_MORE_COLUN_NUMBERS
     va_list     argptr;
 
     bool        abort = false;
     wxString    tempStr;
 
     va_start(argptr, first);     /* Initialize variable arguments. */
-    while (!abort && (colNo != wxDB_NO_MORE_COLUMN_NUMBERS))
+    while (!abort && (colNumber != wxDB_NO_MORE_COLUMN_NUMBERS))
     {
         // Make sure the passed in column number
         // is within the valid range of columns
         //
-        // Valid columns are 0 thru noCols-1
-        if (colNo >= noCols || colNo < 0)
+        // Valid columns are 0 thru m_numCols-1
+        if (colNumber >= m_numCols || colNumber < 0)
         {
             abort = true;
             continue;
         }
 
-        if (colNo != first)
+        if (colNumber != first)
             tempStr += wxT(",");
 
-        tempStr += colDefs[colNo].ColName;
-        colNo = va_arg (argptr, int);
+        tempStr += colDefs[colNumber].ColName;
+        colNumber = va_arg (argptr, int);
     }
     va_end (argptr);              /* Reset variable arguments.      */
 
@@ -1941,7 +1941,7 @@ int wxDbTable::Insert(void)
         {
             // Find the parameter
             int i;
-            for (i=0; i < noCols; i++)
+            for (i=0; i < m_numCols; i++)
             {
                 if (colDefs[i].PtrDataObj == pParmID)
                 {
@@ -2100,33 +2100,33 @@ bool wxDbTable::DeleteMatching(void)
 
 
 /********** wxDbTable::IsColNull() **********/
-bool wxDbTable::IsColNull(UWORD colNo) const
+bool wxDbTable::IsColNull(UWORD colNumber) const
 {
 /*
     This logic is just not right.  It would indicate true
     if a numeric field were set to a value of 0.
 
-    switch(colDefs[colNo].SqlCtype)
+    switch(colDefs[colNumber].SqlCtype)
     {
         case SQL_C_CHAR:
         case SQL_C_WCHAR:
         //case SQL_C_WXCHAR:  SQL_C_WXCHAR is covered by either SQL_C_CHAR or SQL_C_WCHAR
-            return(((UCHAR FAR *) colDefs[colNo].PtrDataObj)[0] == 0);
+            return(((UCHAR FAR *) colDefs[colNumber].PtrDataObj)[0] == 0);
         case SQL_C_SSHORT:
-            return((  *((SWORD *) colDefs[colNo].PtrDataObj))   == 0);
+            return((  *((SWORD *) colDefs[colNumber].PtrDataObj))   == 0);
         case SQL_C_USHORT:
-            return((   *((UWORD*) colDefs[colNo].PtrDataObj))   == 0);
+            return((   *((UWORD*) colDefs[colNumber].PtrDataObj))   == 0);
         case SQL_C_SLONG:
-            return(( *((SDWORD *) colDefs[colNo].PtrDataObj))   == 0);
+            return(( *((SDWORD *) colDefs[colNumber].PtrDataObj))   == 0);
         case SQL_C_ULONG:
-            return(( *((UDWORD *) colDefs[colNo].PtrDataObj))   == 0);
+            return(( *((UDWORD *) colDefs[colNumber].PtrDataObj))   == 0);
         case SQL_C_FLOAT:
-            return(( *((SFLOAT *) colDefs[colNo].PtrDataObj))   == 0);
+            return(( *((SFLOAT *) colDefs[colNumber].PtrDataObj))   == 0);
         case SQL_C_DOUBLE:
-            return((*((SDOUBLE *) colDefs[colNo].PtrDataObj))   == 0);
+            return((*((SDOUBLE *) colDefs[colNumber].PtrDataObj))   == 0);
         case SQL_C_TIMESTAMP:
             TIMESTAMP_STRUCT *pDt;
-            pDt = (TIMESTAMP_STRUCT *) colDefs[colNo].PtrDataObj;
+            pDt = (TIMESTAMP_STRUCT *) colDefs[colNumber].PtrDataObj;
             if (pDt->year == 0 && pDt->month == 0 && pDt->day == 0)
                 return true;
             else
@@ -2135,7 +2135,7 @@ bool wxDbTable::IsColNull(UWORD colNo) const
             return true;
     }
 */
-    return (colDefs[colNo].Null);
+    return (colDefs[colNumber].Null);
 }  // wxDbTable::IsColNull()
 
 
@@ -2157,8 +2157,8 @@ bool wxDbTable::CanSelectForUpdate(void)
 }  // wxDbTable::CanSelectForUpdate()
 
 
-/********** wxDbTable::CanUpdByROWID() **********/
-bool wxDbTable::CanUpdByROWID(void)
+/********** wxDbTable::CanUpdateByROWID() **********/
+bool wxDbTable::CanUpdateByROWID(void)
 {
 /*
  * NOTE: Returning false for now until this can be debugged,
@@ -2171,7 +2171,7 @@ bool wxDbTable::CanUpdByROWID(void)
     else
         return false;
 */
-}  // wxDbTable::CanUpdByROWID()
+}  // wxDbTable::CanUpdateByROWID()
 
 
 /********** wxDbTable::IsCursorClosedOnCommit() **********/
@@ -2187,41 +2187,41 @@ bool wxDbTable::IsCursorClosedOnCommit(void)
 
 
 /********** wxDbTable::ClearMemberVar() **********/
-void wxDbTable::ClearMemberVar(UWORD colNo, bool setToNull)
+void wxDbTable::ClearMemberVar(UWORD colNumber, bool setToNull)
 {
-    wxASSERT(colNo < noCols);
+    wxASSERT(colNumber < m_numCols);
 
-    switch(colDefs[colNo].SqlCtype)
+    switch(colDefs[colNumber].SqlCtype)
     {
         case SQL_C_CHAR:
 #ifndef __UNIX__
         case SQL_C_WCHAR:
 #endif
         //case SQL_C_WXCHAR:  SQL_C_WXCHAR is covered by either SQL_C_CHAR or SQL_C_WCHAR
-            ((UCHAR FAR *) colDefs[colNo].PtrDataObj)[0]    = 0;
+            ((UCHAR FAR *) colDefs[colNumber].PtrDataObj)[0]    = 0;
             break;
         case SQL_C_SSHORT:
-            *((SWORD *) colDefs[colNo].PtrDataObj)          = 0;
+            *((SWORD *) colDefs[colNumber].PtrDataObj)          = 0;
             break;
         case SQL_C_USHORT:
-            *((UWORD*) colDefs[colNo].PtrDataObj)           = 0;
+            *((UWORD*) colDefs[colNumber].PtrDataObj)           = 0;
             break;
         case SQL_C_LONG:
         case SQL_C_SLONG:
-            *((SDWORD *) colDefs[colNo].PtrDataObj)         = 0;
+            *((SDWORD *) colDefs[colNumber].PtrDataObj)         = 0;
             break;
         case SQL_C_ULONG:
-            *((UDWORD *) colDefs[colNo].PtrDataObj)         = 0;
+            *((UDWORD *) colDefs[colNumber].PtrDataObj)         = 0;
             break;
         case SQL_C_FLOAT:
-            *((SFLOAT *) colDefs[colNo].PtrDataObj)         = 0.0f;
+            *((SFLOAT *) colDefs[colNumber].PtrDataObj)         = 0.0f;
             break;
         case SQL_C_DOUBLE:
-            *((SDOUBLE *) colDefs[colNo].PtrDataObj)        = 0.0f;
+            *((SDOUBLE *) colDefs[colNumber].PtrDataObj)        = 0.0f;
             break;
         case SQL_C_TIMESTAMP:
             TIMESTAMP_STRUCT *pDt;
-            pDt = (TIMESTAMP_STRUCT *) colDefs[colNo].PtrDataObj;
+            pDt = (TIMESTAMP_STRUCT *) colDefs[colNumber].PtrDataObj;
             pDt->year = 0;
             pDt->month = 0;
             pDt->day = 0;
@@ -2233,7 +2233,7 @@ void wxDbTable::ClearMemberVar(UWORD colNo, bool setToNull)
     }
 
     if (setToNull)
-        SetColNull(colNo);
+        SetColNull(colNumber);
 }  // wxDbTable::ClearMemberVar()
 
 
@@ -2243,7 +2243,7 @@ void wxDbTable::ClearMemberVars(bool setToNull)
     int i;
 
     // Loop through the columns setting each member variable to zero
-    for (i=0; i < noCols; i++)
+    for (i=0; i < m_numCols; i++)
         ClearMemberVar((UWORD)i,setToNull);
 
 }  // wxDbTable::ClearMemberVars()
@@ -2268,27 +2268,32 @@ bool wxDbTable::SetQueryTimeout(UDWORD nSeconds)
 
 
 /********** wxDbTable::SetColDefs() **********/
-void wxDbTable::SetColDefs(UWORD index, const wxString &fieldName, int dataType, void *pData,
-                           SWORD cType, int size, bool keyField, bool upd,
+bool wxDbTable::SetColDefs(UWORD index, const wxString &fieldName, int dataType, void *pData,
+                           SWORD cType, int size, bool keyField, bool updateable,
                            bool insAllow, bool derivedCol)
 {
-    wxASSERT_MSG( index < noCols,
-                  _T("Specified column index exceeds the maximum number of columns for this table.") );
+    wxString tmpStr;
+
+    if (index >= m_numCols)  // Columns numbers are zero based....
+    {
+        tmpStr.Printf(wxT("Specified column index (%d) exceeds the maximum number of columns (%d) registered for this table definition.  Column definition not added."), index, m_numCols);
+        wxFAIL_MSG(tmpStr);
+        wxLogDebug(tmpStr);
+        return false;
+    }
 
     if (!colDefs)  // May happen if the database connection fails
-        return;
+        return false;
 
     if (fieldName.Length() > (unsigned int) DB_MAX_COLUMN_NAME_LEN)
     {
         wxStrncpy(colDefs[index].ColName, fieldName, DB_MAX_COLUMN_NAME_LEN);
-        colDefs[index].ColName[DB_MAX_COLUMN_NAME_LEN] = 0;
+        colDefs[index].ColName[DB_MAX_COLUMN_NAME_LEN] = 0;  // Prevent buffer overrun
 
-#ifdef __WXDEBUG__
-        wxString tmpMsg;
-        tmpMsg.Printf(_T("Column name '%s' is too long. Truncated to '%s'."),
+        tmpStr.Printf(wxT("Column name '%s' is too long. Truncated to '%s'."),
                       fieldName.c_str(),colDefs[index].ColName);
-        wxFAIL_MSG(tmpMsg);
-#endif // __WXDEBUG__
+        wxFAIL_MSG(tmpStr);
+        wxLogDebug(tmpStr);
     }
     else
         wxStrcpy(colDefs[index].ColName, fieldName);
@@ -2307,12 +2312,14 @@ void wxDbTable::SetColDefs(UWORD index, const wxString &fieldName, int dataType,
     }
     else
     {
-        colDefs[index].Updateable       = upd;
+        colDefs[index].Updateable       = updateable;
         colDefs[index].InsertAllowed    = insAllow;
     }
 
     colDefs[index].Null                 = false;
 
+    return true;
+
 }  // wxDbTable::SetColDefs()
 
 
@@ -2505,7 +2512,7 @@ bool wxDbTable::Refresh(void)
     wxString whereClause;
     whereClause.Empty();
 
-    if (CanUpdByROWID())
+    if (CanUpdateByROWID())
     {
         SDWORD cb;
         wxChar rowid[wxDB_ROWID_LEN+1];
@@ -2513,7 +2520,7 @@ bool wxDbTable::Refresh(void)
         // Get the ROWID value.  If not successful retreiving the ROWID,
         // simply fall down through the code and build the WHERE clause
         // based on the key fields.
-        if (SQLGetData(hstmt, (UWORD)(noCols+1), SQL_C_WXCHAR, (UCHAR*) rowid, sizeof(rowid), &cb) == SQL_SUCCESS)
+        if (SQLGetData(hstmt, (UWORD)(m_numCols+1), SQL_C_WXCHAR, (UCHAR*) rowid, sizeof(rowid), &cb) == SQL_SUCCESS)
         {
             whereClause += pDb->SQLTableName(queryTableName);
 //            whereClause += queryTableName;
@@ -2553,15 +2560,15 @@ bool wxDbTable::Refresh(void)
 
 
 /********** wxDbTable::SetColNull() **********/
-bool wxDbTable::SetColNull(UWORD colNo, bool set)
+bool wxDbTable::SetColNull(UWORD colNumber, bool set)
 {
-    if (colNo < noCols)
+    if (colNumber < m_numCols)
     {
-        colDefs[colNo].Null = set;
+        colDefs[colNumber].Null = set;
         if (set)  // Blank out the values in the member variable
-           ClearMemberVar(colNo, false);  // Must call with false here, or infinite recursion will happen
+           ClearMemberVar(colNumber, false);  // Must call with false here, or infinite recursion will happen
 
-        setCbValueForColumn(colNo);
+        setCbValueForColumn(colNumber);
 
         return true;
     }
@@ -2574,20 +2581,20 @@ bool wxDbTable::SetColNull(UWORD colNo, bool set)
 /********** wxDbTable::SetColNull() **********/
 bool wxDbTable::SetColNull(const wxString &colName, bool set)
 {
-    int colNo;
-    for (colNo = 0; colNo < noCols; colNo++)
+    int colNumber;
+    for (colNumber = 0; colNumber < m_numCols; colNumber++)
     {
-        if (!wxStricmp(colName, colDefs[colNo].ColName))
+        if (!wxStricmp(colName, colDefs[colNumber].ColName))
             break;
     }
 
-    if (colNo < noCols)
+    if (colNumber < m_numCols)
     {
-        colDefs[colNo].Null = set;
+        colDefs[colNumber].Null = set;
         if (set)  // Blank out the values in the member variable
-           ClearMemberVar((UWORD)colNo,false);  // Must call with false here, or infinite recursion will happen
+           ClearMemberVar((UWORD)colNumber,false);  // Must call with false here, or infinite recursion will happen
 
-        setCbValueForColumn(colNo);
+        setCbValueForColumn(colNumber);
 
         return true;
     }
@@ -2689,48 +2696,48 @@ void wxDbTable::SetRowMode(const rowmode_t rowmode)
 }  // wxDbTable::SetRowMode()
 
 
-wxVariant wxDbTable::GetCol(const int colNo) const
+wxVariant wxDbTable::GetColumn(const int colNumber) const
 {
     wxVariant val;
-    if ((colNo < noCols) && (!IsColNull((UWORD)colNo)))
+    if ((colNumber < m_numCols) && (!IsColNull((UWORD)colNumber)))
     {
-        switch (colDefs[colNo].SqlCtype)
+        switch (colDefs[colNumber].SqlCtype)
         {
             case SQL_CHAR:
             case SQL_VARCHAR:
-                val = (wxChar *)(colDefs[colNo].PtrDataObj);
+                val = (wxChar *)(colDefs[colNumber].PtrDataObj);
                 break;
             case SQL_C_LONG:
             case SQL_C_SLONG:
-                val = *(long *)(colDefs[colNo].PtrDataObj);
+                val = *(long *)(colDefs[colNumber].PtrDataObj);
                 break;
             case SQL_C_SHORT:
             case SQL_C_SSHORT:
-                val = (long int )(*(short *)(colDefs[colNo].PtrDataObj));
+                val = (long int )(*(short *)(colDefs[colNumber].PtrDataObj));
                 break;
             case SQL_C_ULONG:
-                val = (long)(*(unsigned long *)(colDefs[colNo].PtrDataObj));
+                val = (long)(*(unsigned long *)(colDefs[colNumber].PtrDataObj));
                 break;
             case SQL_C_TINYINT:
-                val = (long)(*(wxChar *)(colDefs[colNo].PtrDataObj));
+                val = (long)(*(wxChar *)(colDefs[colNumber].PtrDataObj));
                 break;
             case SQL_C_UTINYINT:
-                val = (long)(*(wxChar *)(colDefs[colNo].PtrDataObj));
+                val = (long)(*(wxChar *)(colDefs[colNumber].PtrDataObj));
                 break;
             case SQL_C_USHORT:
-                val = (long)(*(UWORD *)(colDefs[colNo].PtrDataObj));
+                val = (long)(*(UWORD *)(colDefs[colNumber].PtrDataObj));
                 break;
             case SQL_C_DATE:
-                val = (DATE_STRUCT *)(colDefs[colNo].PtrDataObj);
+                val = (DATE_STRUCT *)(colDefs[colNumber].PtrDataObj);
                 break;
             case SQL_C_TIME:
-                val = (TIME_STRUCT *)(colDefs[colNo].PtrDataObj);
+                val = (TIME_STRUCT *)(colDefs[colNumber].PtrDataObj);
                 break;
             case SQL_C_TIMESTAMP:
-                val = (TIMESTAMP_STRUCT *)(colDefs[colNo].PtrDataObj);
+                val = (TIMESTAMP_STRUCT *)(colDefs[colNumber].PtrDataObj);
                 break;
             case SQL_C_DOUBLE:
-                val = *(double *)(colDefs[colNo].PtrDataObj);
+                val = *(double *)(colDefs[colNumber].PtrDataObj);
                 break;
             default:
                 assert(0);
@@ -2740,57 +2747,57 @@ wxVariant wxDbTable::GetCol(const int colNo) const
 }  // wxDbTable::GetCol()
 
 
-void wxDbTable::SetCol(const int colNo, const wxVariant val)
+void wxDbTable::SetColumn(const int colNumber, const wxVariant val)
 {
     //FIXME: Add proper wxDateTime support to wxVariant..
     wxDateTime dateval;
 
-    SetColNull((UWORD)colNo, val.IsNull());
+    SetColNull((UWORD)colNumber, val.IsNull());
 
     if (!val.IsNull())
     {
-        if ((colDefs[colNo].SqlCtype == SQL_C_DATE)
-            || (colDefs[colNo].SqlCtype == SQL_C_TIME)
-            || (colDefs[colNo].SqlCtype == SQL_C_TIMESTAMP))
+        if ((colDefs[colNumber].SqlCtype == SQL_C_DATE)
+            || (colDefs[colNumber].SqlCtype == SQL_C_TIME)
+            || (colDefs[colNumber].SqlCtype == SQL_C_TIMESTAMP))
         {
             //Returns null if invalid!
             if (!dateval.ParseDate(val.GetString()))
-                SetColNull((UWORD)colNo, true);
+                SetColNull((UWORD)colNumber, true);
         }
 
-        switch (colDefs[colNo].SqlCtype)
+        switch (colDefs[colNumber].SqlCtype)
         {
             case SQL_CHAR:
             case SQL_VARCHAR:
-                csstrncpyt((wxChar *)(colDefs[colNo].PtrDataObj),
+                csstrncpyt((wxChar *)(colDefs[colNumber].PtrDataObj),
                            val.GetString().c_str(),
-                           colDefs[colNo].SzDataObj-1);  //TODO: glt ??? * sizeof(wxChar) ???
+                           colDefs[colNumber].SzDataObj-1);  //TODO: glt ??? * sizeof(wxChar) ???
                 break;
             case SQL_C_LONG:
             case SQL_C_SLONG:
-                *(long *)(colDefs[colNo].PtrDataObj) = val;
+                *(long *)(colDefs[colNumber].PtrDataObj) = val;
                 break;
             case SQL_C_SHORT:
             case SQL_C_SSHORT:
-                *(short *)(colDefs[colNo].PtrDataObj) = (short)val.GetLong();
+                *(short *)(colDefs[colNumber].PtrDataObj) = (short)val.GetLong();
                 break;
             case SQL_C_ULONG:
-                *(unsigned long *)(colDefs[colNo].PtrDataObj) = val.GetLong();
+                *(unsigned long *)(colDefs[colNumber].PtrDataObj) = val.GetLong();
                 break;
             case SQL_C_TINYINT:
-                *(wxChar *)(colDefs[colNo].PtrDataObj) = val.GetChar();
+                *(wxChar *)(colDefs[colNumber].PtrDataObj) = val.GetChar();
                 break;
             case SQL_C_UTINYINT:
-                *(wxChar *)(colDefs[colNo].PtrDataObj) = val.GetChar();
+                *(wxChar *)(colDefs[colNumber].PtrDataObj) = val.GetChar();
                 break;
             case SQL_C_USHORT:
-                *(unsigned short *)(colDefs[colNo].PtrDataObj) = (unsigned short)val.GetLong();
+                *(unsigned short *)(colDefs[colNumber].PtrDataObj) = (unsigned short)val.GetLong();
                 break;
             //FIXME: Add proper wxDateTime support to wxVariant..
             case SQL_C_DATE:
                 {
                     DATE_STRUCT *dataptr =
-                        (DATE_STRUCT *)colDefs[colNo].PtrDataObj;
+                        (DATE_STRUCT *)colDefs[colNumber].PtrDataObj;
 
                     dataptr->year   = (SWORD)dateval.GetYear();
                     dataptr->month  = (UWORD)(dateval.GetMonth()+1);
@@ -2800,7 +2807,7 @@ void wxDbTable::SetCol(const int colNo, const wxVariant val)
             case SQL_C_TIME:
                 {
                     TIME_STRUCT *dataptr =
-                        (TIME_STRUCT *)colDefs[colNo].PtrDataObj;
+                        (TIME_STRUCT *)colDefs[colNumber].PtrDataObj;
 
                     dataptr->hour   = dateval.GetHour();
                     dataptr->minute = dateval.GetMinute();
@@ -2810,7 +2817,7 @@ void wxDbTable::SetCol(const int colNo, const wxVariant val)
             case SQL_C_TIMESTAMP:
                 {
                     TIMESTAMP_STRUCT *dataptr =
-                        (TIMESTAMP_STRUCT *)colDefs[colNo].PtrDataObj;
+                        (TIMESTAMP_STRUCT *)colDefs[colNumber].PtrDataObj;
                     dataptr->year   = (SWORD)dateval.GetYear();
                     dataptr->month  = (UWORD)(dateval.GetMonth()+1);
                     dataptr->day    = (UWORD)dateval.GetDay();
@@ -2821,7 +2828,7 @@ void wxDbTable::SetCol(const int colNo, const wxVariant val)
                 }
                 break;
             case SQL_C_DOUBLE:
-                *(double *)(colDefs[colNo].PtrDataObj) = val;
+                *(double *)(colDefs[colNumber].PtrDataObj) = val;
                 break;
             default:
                 assert(0);
@@ -2839,7 +2846,7 @@ GenericKey wxDbTable::GetKey()
     blkptr = (wxChar *) blk;
 
     int i;
-    for (i=0; i < noCols; i++)
+    for (i=0; i < m_numCols; i++)
     {
         if (colDefs[i].KeyField)
         {
@@ -2864,7 +2871,7 @@ void wxDbTable::SetKey(const GenericKey& k)
     blkptr = (wxChar *)blk;
 
     int i;
-    for (i=0; i < noCols; i++)
+    for (i=0; i < m_numCols; i++)
     {
         if (colDefs[i].KeyField)
         {