///////////////////////////////////////////////////////////////////////////////
-// Name:        dbgrid.cpp
+// Name:        src/common/dbgrid.cpp
 // Purpose:     Displays a wxDbTable in a wxGrid.
 // Author:      Roger Gammans, Paul Gammans
 // Modified by:
 // Created:
 // RCS-ID:      $Id$
 // Copyright:   (c) 1999 The Computer Surgery (roger@computer-surgery.co.uk)
-// Licence:     wxWidgets licence
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 // Branched From : dbgrid.cpp,v 1.18 2000/12/19 13:00:58
 ///////////////////////////////////////////////////////////////////////////////
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation "dbgrid.h"
-#endif
-
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
     #pragma hdrstop
 #endif
 
-
-#if wxUSE_ODBC
-#if wxUSE_GRID
+#if wxUSE_ODBC && wxUSE_GRID
 
 #ifndef WX_PRECOMP
     #include "wx/textctrl.h"
     #include "wx/dc.h"
+    #include "wx/app.h"
 #endif // WX_PRECOMP
 
 #include "wx/generic/gridctrl.h"
 #include "wx/dbgrid.h"
 
 // DLL options compatibility check:
-#include "wx/app.h"
 WX_CHECK_BUILD_OPTIONS("wxDbGrid")
 
 
     m_keys(),
     m_data(tab),
     m_dbowner(takeOwnership),
-    m_rowmodified(FALSE)
+    m_rowmodified(false)
 {
 
     if (count == wxUSE_QUERY)
         // use the default attr provider by default
         SetAttrProvider(new wxDbGridCellAttrProvider(m_data, m_ColInfo));
     }
-    return TRUE;
+    return true;
 }
 
 
         grid->EndBatch();
     }
     m_dbowner = takeOwnership;
-    m_rowmodified = FALSE;
-    return TRUE;
+    m_rowmodified = false;
+    return true;
 }
 
 wxString wxDbGridTableBase::GetTypeName(int WXUNUSED(row), int col)
             switch(m_data->GetColDefs()[(m_ColInfo[col].DbCol)].SqlCtype)
             {
                 case SQL_C_CHAR:
+#ifdef SQL_C_WCHAR
+                case SQL_C_WCHAR:
+#endif
                     return wxGRID_VALUE_STRING;
+                case SQL_C_SHORT:
                 case SQL_C_SSHORT:
                     return wxGRID_VALUE_NUMBER;
                 case SQL_C_USHORT:
                     return wxGRID_VALUE_NUMBER;
+                case SQL_C_LONG:
                 case SQL_C_SLONG:
                     return wxGRID_VALUE_NUMBER;
                 case SQL_C_ULONG:
     if (typeName == wxGRID_VALUE_STRING)
     {
         //FIXME ummm What about blob field etc.
-        return TRUE;
+        return true;
     }
 
-    if (m_data->IsColNull(m_ColInfo[col].DbCol))
+    if (m_data->IsColNull((UWORD)m_ColInfo[col].DbCol))
     {
-        return FALSE;
+        return false;
     }
 
     if (m_data->GetNumberOfColumns() <= m_ColInfo[col].DbCol)
     {
         //If a virtual column then we can't find it's type. we have to
-        // return FALSE to get using wxVariant.
-        return FALSE;
+        // return false to get using wxVariant.
+        return false;
     }
     int sqltype = m_data->GetColDefs()[(m_ColInfo[col].DbCol)].SqlCtype;
 
             (sqltype == SQL_C_TIME) ||
             (sqltype == SQL_C_TIMESTAMP))
         {
-            return TRUE;
+            return true;
         }
-        return FALSE;
+        return false;
     }
     if (typeName == wxGRID_VALUE_NUMBER)
     {
             (sqltype == SQL_C_SLONG)  ||
             (sqltype == SQL_C_ULONG))
         {
-            return TRUE;
+            return true;
         }
-        return FALSE;
+        return false;
     }
     if (typeName == wxGRID_VALUE_FLOAT)
     {
             (sqltype == SQL_C_FLOAT)  ||
             (sqltype == SQL_C_DOUBLE))
         {
-            return TRUE;
+            return true;
         }
-        return FALSE;
+        return false;
     }
-    return FALSE;
+    return false;
 }
 
 bool wxDbGridTableBase::CanSetValueAs(int WXUNUSED(row), int col, const wxString& typeName)
     if (typeName == wxGRID_VALUE_STRING)
     {
         //FIXME ummm What about blob field etc.
-        return TRUE;
+        return true;
     }
 
     if (!(m_data->GetColDefs()[(m_ColInfo[col].DbCol)].Updateable))
     {
-        return FALSE;
+        return false;
     }
 
     if (m_data->GetNumberOfColumns() <= m_ColInfo[col].DbCol)
     {
         //If a virtual column then we can't find it's type. we have to faulse to
         //get using wxVairent.
-        return FALSE;
+        return false;
     }
 
     int sqltype = m_data->GetColDefs()[(m_ColInfo[col].DbCol)].SqlCtype;
             (sqltype == SQL_C_TIME) ||
             (sqltype == SQL_C_TIMESTAMP))
         {
-            return TRUE;
+            return true;
         }
-        return FALSE;
+        return false;
     }
     if (typeName == wxGRID_VALUE_NUMBER)
     {
             (sqltype == SQL_C_SLONG)  ||
             (sqltype == SQL_C_ULONG))
         {
-            return TRUE;
+            return true;
         }
-        return FALSE;
+        return false;
     }
     if (typeName == wxGRID_VALUE_FLOAT)
     {
             (sqltype == SQL_C_FLOAT)  ||
             (sqltype == SQL_C_DOUBLE))
         {
-            return TRUE;
+            return true;
         }
-        return FALSE;
+        return false;
     }
-    return FALSE;
+    return false;
 }
 
 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, "));
         (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"));
         (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, "));
         wxFAIL_MSG (_T("You can not use GetValueAsCustom for virtual columns"));
         return NULL;
     }
-    if (m_data->IsColNull(m_ColInfo[col].DbCol))
+    if (m_data->IsColNull((UWORD)m_ColInfo[col].DbCol))
         return NULL;
 
     if (typeName == wxGRID_VALUE_DATETIME)
             (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());
         }
     }
                 return;
             }
             wxVariant val(date);
-            m_rowmodified = TRUE;
-            m_data->SetCol(m_ColInfo[col].DbCol,val);
+            m_rowmodified = true;
+            m_data->SetColumn(m_ColInfo[col].DbCol,val);
         }
     }
     wxFAIL_MSG (_T("unknown column data type"));
     wxLogDebug(wxT("IsEmtpyCell on %i,%i"),row,col);
 
     ValidateRow(row);
-    return m_data->IsColNull(m_ColInfo[col].DbCol);
+    return m_data->IsColNull((UWORD)m_ColInfo[col].DbCol);
 }
 
 
     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();
     ValidateRow(row);
     wxVariant val(value);
 
-    m_rowmodified = TRUE;
-    m_data->SetCol(m_ColInfo[col].DbCol,val);
+    m_rowmodified = true;
+    m_data->SetColumn(m_ColInfo[col].DbCol,val);
 }
 
 
     ValidateRow(row);
     wxVariant val(value);
 
-    m_rowmodified = TRUE;
-    m_data->SetCol(m_ColInfo[col].DbCol,val);
+    m_rowmodified = true;
+    m_data->SetColumn(m_ColInfo[col].DbCol,val);
 }
 
 
     ValidateRow(row);
     wxVariant val(value);
 
-    m_rowmodified = TRUE;
-    m_data->SetCol(m_ColInfo[col].DbCol,val);
+    m_rowmodified = true;
+    m_data->SetColumn(m_ColInfo[col].DbCol,val);
 
 }
 
     ValidateRow(row);
     wxVariant val(value);
 
-    m_rowmodified = TRUE;
-    m_data->SetCol(m_ColInfo[col].DbCol,val);
+    m_rowmodified = true;
+    m_data->SetColumn(m_ColInfo[col].DbCol,val);
 }
 
 
 void wxDbGridTableBase::ValidateRow(int row)
 {
-    wxLogDebug(wxT("ValidateRow(%i) currently on row (%i). Array count = %i"),row,m_row,m_keys.GetCount());
+    wxLogDebug(wxT("ValidateRow(%i) currently on row (%i). Array count = %lu"),
+               row, m_row, (unsigned long)m_keys.GetCount());
 
     if (row == m_row)
          return;
 
         m_row = row;
     }
-    m_rowmodified = FALSE;
+    m_rowmodified = false;
 }
 
 bool wxDbGridTableBase::Writeback() const
 {
     if (!m_rowmodified)
     {
-        return TRUE;
+        return true;
     }
 
-    bool result=TRUE;
+    bool result=true;
     wxLogDebug(wxT("\trow key unknown"));
 
 // FIXME: this code requires dbtable support for record status
 
 #include "wx/arrimpl.cpp"
 
-WX_DEFINE_EXPORTED_OBJARRAY(keyarray);
-
-#endif  // #if wxUSE_GRID
-#endif  // #if wxUSE_ODBC
+WX_DEFINE_EXPORTED_OBJARRAY(keyarray)
 
+#endif  // wxUSE_GRID && wxUSE_ODBC