///////////////////////////////////////////////////////////////////////////////
-// Name: dbgrid.cpp
+// Name: src/common/dbgrid.cpp
// Purpose: Displays a wxDbTable in a wxGrid.
// Author: Roger Gammans, Paul Gammans
// Modified by:
// Branched From : dbgrid.cpp,v 1.18 2000/12/19 13:00:58
///////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
- #pragma implementation "dbgrid.h"
-#endif
-
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
-
-#if wxUSE_ODBC
-#if wxUSE_NEW_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:
+WX_CHECK_BUILD_OPTIONS("wxDbGrid")
+
wxDbGridCellAttrProvider::wxDbGridCellAttrProvider()
{
//FIXME: should i remove m_ColInfo and m_data from m_attrProvider if a wxDbGridAttrProvider
// if ((provider = dynamic_cast<wxDbGridCellAttrProvider *>(GetAttrProvider())))
- // Using C casting for now until we can support dynamic_cast with wxWindows
+ // Using C casting for now until we can support dynamic_cast with wxWidgets
provider = (wxDbGridCellAttrProvider *)(GetAttrProvider());
if (provider)
{
{
wxDbGridCellAttrProvider *provider;
+ wxGridUpdateLocker locker(GetView());
+
//Remove Information from grid about old data
if (GetView())
{
wxGrid *grid = GetView();
- grid->BeginBatch();
grid->ClearSelection();
if (grid->IsCellEditControlEnabled())
{
m_data = tab;
//FIXME: Remove dynamic_cast before sumision to wxwin
// if ((provider = dynamic_cast<wxDbGridCellAttrProvider *> (GetAttrProvider())))
- // Using C casting for now until we can support dynamic_cast with wxWindows
+ // Using C casting for now until we can support dynamic_cast with wxWidgets
provider = (wxDbGridCellAttrProvider *)(GetAttrProvider());
if (provider)
{
wxGrid * grid = GetView();
wxGridTableMessage msg(this, wxGRIDTABLE_NOTIFY_ROWS_APPENDED, m_rowtotal);
grid->ProcessTableMessage(msg);
- grid->EndBatch();
}
m_dbowner = takeOwnership;
m_rowmodified = false;
return true;
}
-wxString wxDbGridTableBase::GetTypeName(int row, int col)
+wxString wxDbGridTableBase::GetTypeName(int WXUNUSED(row), int col)
{
- if (col == 8)
- int breakpoint = 1;
-
if (GetNumberCols() > col)
{
if (m_ColInfo[col].wxtypename == wxGRID_VALUE_DBAUTO)
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;
- break;
+ case SQL_C_SHORT:
case SQL_C_SSHORT:
return wxGRID_VALUE_NUMBER;
- break;
case SQL_C_USHORT:
return wxGRID_VALUE_NUMBER;
- break;
+ case SQL_C_LONG:
case SQL_C_SLONG:
return wxGRID_VALUE_NUMBER;
- break;
case SQL_C_ULONG:
return wxGRID_VALUE_NUMBER;
- break;
case SQL_C_FLOAT:
return wxGRID_VALUE_FLOAT;
- break;
case SQL_C_DOUBLE:
return wxGRID_VALUE_FLOAT;
- break;
case SQL_C_DATE:
return wxGRID_VALUE_DATETIME;
- break;
case SQL_C_TIME:
return wxGRID_VALUE_DATETIME;
- break;
case SQL_C_TIMESTAMP:
return wxGRID_VALUE_DATETIME;
- break;
default:
return wxGRID_VALUE_STRING;
- break;
}
}
else
return true;
}
- if (m_data->IsColNull(m_ColInfo[col].DbCol))
+ if (m_data->IsColNull((UWORD)m_ColInfo[col].DbCol))
{
return false;
}
return false;
}
-bool wxDbGridTableBase::CanSetValueAs(int row, int col, const wxString& typeName)
+bool wxDbGridTableBase::CanSetValueAs(int WXUNUSED(row), int col, const wxString& typeName)
{
- //Is this needed? As will be validated on SetValueAsXXXX
- ValidateRow(row);
-
- if (m_data->IsColNull(m_ColInfo[col].DbCol))
- {
- return false;
- }
-
if (typeName == wxGRID_VALUE_STRING)
{
//FIXME ummm What about blob field etc.
(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());
}
}
}
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"));
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();
wxVariant val(value);
m_rowmodified = true;
- m_data->SetCol(m_ColInfo[col].DbCol,val);
+ m_data->SetColumn(m_ColInfo[col].DbCol,val);
}
wxVariant val(value);
m_rowmodified = true;
- m_data->SetCol(m_ColInfo[col].DbCol,val);
+ m_data->SetColumn(m_ColInfo[col].DbCol,val);
}
wxVariant val(value);
m_rowmodified = true;
- m_data->SetCol(m_ColInfo[col].DbCol,val);
+ m_data->SetColumn(m_ColInfo[col].DbCol,val);
}
wxVariant val(value);
m_rowmodified = true;
- m_data->SetCol(m_ColInfo[col].DbCol,val);
+ 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_data->SetKey(k);
if (!m_data->QueryOnKeyFields())
{
- wxDbLogExtendedErrorMsg("ODBC error during Query()\n\n", m_data->GetDb(),__FILE__,__LINE__);
+ wxDbLogExtendedErrorMsg(_T("ODBC error during Query()\n\n"), m_data->GetDb(),__TFILE__,__LINE__);
}
m_data->GetNext();
return result;
}
-#include <wx/arrimpl.cpp>
-
-WX_DEFINE_OBJARRAY(keyarray);
+#include "wx/arrimpl.cpp"
-#endif // #if wxUSE_NEW_GRID
-#endif // #if wxUSE_ODBC
+WX_DEFINE_EXPORTED_OBJARRAY(keyarray)
+#endif // wxUSE_GRID && wxUSE_ODBC