wxChar* usage changed over to wxString in various places
Warning fixes when compiling in compatibility 2_4 mode to force use of the desired wxDbTable constructor Added OnDClick() event to listbox to auto-click the OK button to select a name Unicode fix of a SQL_C_CHAR reference git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30411 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -89,7 +89,7 @@ extern wxApp *DatabaseDemoApp;
|
|||||||
* NOTE: The value returned by this function is for temporary use only and
|
* NOTE: The value returned by this function is for temporary use only and
|
||||||
* should be copied for long term use
|
* should be copied for long term use
|
||||||
*/
|
*/
|
||||||
const wxChar *GetExtendedDBErrorMsg2(wxDb *pDb, wxChar *ErrFile, int ErrLine)
|
wxString GetExtendedDBErrorMsg2(wxDb *pDb, wxChar *ErrFile, int ErrLine)
|
||||||
{
|
{
|
||||||
static wxString msg;
|
static wxString msg;
|
||||||
msg = wxT("");
|
msg = wxT("");
|
||||||
@@ -125,17 +125,17 @@ const wxChar *GetExtendedDBErrorMsg2(wxDb *pDb, wxChar *ErrFile, int ErrLine)
|
|||||||
}
|
}
|
||||||
msg += wxT("\n");
|
msg += wxT("\n");
|
||||||
|
|
||||||
return msg.c_str();
|
return msg;
|
||||||
} // GetExtendedDBErrorMsg
|
} // GetExtendedDBErrorMsg
|
||||||
|
|
||||||
|
|
||||||
// Clookup constructor
|
// Clookup constructor
|
||||||
Clookup::Clookup(wxString tblName, wxString colName, wxDb *pDb, const wxString &defDir)
|
Clookup::Clookup(wxString tblName, wxString colName, wxDb *pDb, const wxString &defDir)
|
||||||
: wxDbTable(pDb, tblName, 1, wxEmptyString, !wxDB_QUERY_ONLY,
|
: wxDbTable(pDb, tblName, 1, (const wxString &)wxEmptyString, !wxDB_QUERY_ONLY,
|
||||||
defDir)
|
defDir)
|
||||||
{
|
{
|
||||||
|
|
||||||
SetColDefs (0, colName, DB_DATA_TYPE_VARCHAR, lookupCol, SQL_C_CHAR, LOOKUP_COL_LEN+1, false, false);
|
SetColDefs (0, colName, DB_DATA_TYPE_VARCHAR, lookupCol, SQL_C_WXCHAR, LOOKUP_COL_LEN+1, false, false);
|
||||||
|
|
||||||
} // Clookup()
|
} // Clookup()
|
||||||
|
|
||||||
@@ -143,7 +143,7 @@ Clookup::Clookup(wxString tblName, wxString colName, wxDb *pDb, const wxString &
|
|||||||
// Clookup2 constructor
|
// Clookup2 constructor
|
||||||
Clookup2::Clookup2(wxString tblName, wxString colName1, wxString colName2,
|
Clookup2::Clookup2(wxString tblName, wxString colName1, wxString colName2,
|
||||||
wxDb *pDb, const wxString &defDir)
|
wxDb *pDb, const wxString &defDir)
|
||||||
: wxDbTable(pDb, tblName, (UWORD)(1 + (wxStrlen(colName2) > 0)), wxEmptyString,
|
: wxDbTable(pDb, tblName, (UWORD)(1 + (wxStrlen(colName2) > 0)), (const wxString &)wxEmptyString,
|
||||||
!wxDB_QUERY_ONLY, defDir)
|
!wxDB_QUERY_ONLY, defDir)
|
||||||
{
|
{
|
||||||
wxASSERT(pDb);
|
wxASSERT(pDb);
|
||||||
@@ -153,10 +153,10 @@ Clookup2::Clookup2(wxString tblName, wxString colName1, wxString colName2,
|
|||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
SetColDefs ((UWORD)i, colName1, DB_DATA_TYPE_VARCHAR, lookupCol1, SQL_C_CHAR, LOOKUP_COL_LEN+1, false, false);
|
SetColDefs ((UWORD)i, colName1, DB_DATA_TYPE_VARCHAR, lookupCol1, SQL_C_WXCHAR, LOOKUP_COL_LEN+1, false, false);
|
||||||
|
|
||||||
if (wxStrlen(colName2) > 0)
|
if (wxStrlen(colName2) > 0)
|
||||||
SetColDefs ((UWORD)(++i), colName2, DB_DATA_TYPE_VARCHAR, lookupCol2, SQL_C_CHAR, LOOKUP_COL_LEN+1, false, false);
|
SetColDefs ((UWORD)(++i), colName2, DB_DATA_TYPE_VARCHAR, lookupCol2, SQL_C_WXCHAR, LOOKUP_COL_LEN+1, false, false);
|
||||||
|
|
||||||
} // Clookup2()
|
} // Clookup2()
|
||||||
|
|
||||||
@@ -165,12 +165,13 @@ BEGIN_EVENT_TABLE(ClookUpDlg, wxDialog)
|
|||||||
EVT_BUTTON(LOOKUP_DIALOG_OK, ClookUpDlg::OnButton)
|
EVT_BUTTON(LOOKUP_DIALOG_OK, ClookUpDlg::OnButton)
|
||||||
EVT_BUTTON(LOOKUP_DIALOG_CANCEL, ClookUpDlg::OnButton)
|
EVT_BUTTON(LOOKUP_DIALOG_CANCEL, ClookUpDlg::OnButton)
|
||||||
EVT_CLOSE(ClookUpDlg::OnClose)
|
EVT_CLOSE(ClookUpDlg::OnClose)
|
||||||
|
EVT_LISTBOX_DCLICK(LOOKUP_DIALOG_SELECT, ClookUpDlg::OnDClick)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
|
|
||||||
// This is a generic lookup constructor that will work with any table and any column
|
// This is a generic lookup constructor that will work with any table and any column
|
||||||
ClookUpDlg::ClookUpDlg(wxWindow *parent, wxChar *windowTitle, wxChar *tableName,
|
ClookUpDlg::ClookUpDlg(wxWindow *parent, const wxString &windowTitle, const wxString &tableName,
|
||||||
wxChar *colName, wxChar *where, wxChar *orderBy,
|
const wxString &colName, const wxString &where, const wxString &orderBy,
|
||||||
wxDb *pDb, const wxString &defDir)
|
wxDb *pDb, const wxString &defDir)
|
||||||
: wxDialog (parent, LOOKUP_DIALOG, wxT("Select..."), wxDefaultPosition, wxSize(400, 290))
|
: wxDialog (parent, LOOKUP_DIALOG, wxT("Select..."), wxDefaultPosition, wxSize(400, 290))
|
||||||
{
|
{
|
||||||
@@ -183,9 +184,9 @@ ClookUpDlg::ClookUpDlg(wxWindow *parent, wxChar *windowTitle, wxChar *tableName,
|
|||||||
noDisplayCols = 1;
|
noDisplayCols = 1;
|
||||||
col1Len = 0;
|
col1Len = 0;
|
||||||
|
|
||||||
pLookUpSelectList = new wxListBox(this, LOOKUP_DIALOG_SELECT, wxPoint( 5, 15), wxSize(384, 195), 0, 0, wxLB_SINGLE|wxLB_ALWAYS_SB, wxDefaultValidator, wxT("LookUpSelectList"));
|
pLookUpSelectList = new wxListBox(this, LOOKUP_DIALOG_SELECT, wxPoint( 5, 15), wxSize(384, 195), 0, 0, wxLB_SINGLE|wxLB_ALWAYS_SB, wxDefaultValidator, wxT("LookUpSelectList"));
|
||||||
pLookUpOkBtn = new wxButton(this, LOOKUP_DIALOG_OK, wxT("&Ok"), wxPoint(113, 222), wxSize( 70, 35), 0, wxDefaultValidator, wxT("LookUpOkBtn"));
|
pLookUpOkBtn = new wxButton(this, LOOKUP_DIALOG_OK, wxT("&Ok"), wxPoint(113, 222), wxSize( 70, 35), 0, wxDefaultValidator, wxT("LookUpOkBtn"));
|
||||||
pLookUpCancelBtn = new wxButton(this, LOOKUP_DIALOG_CANCEL, wxT("C&ancel"), wxPoint(212, 222), wxSize( 70, 35), 0, wxDefaultValidator, wxT("LookUpCancelBtn"));
|
pLookUpCancelBtn = new wxButton(this, LOOKUP_DIALOG_CANCEL, wxT("C&ancel"), wxPoint(212, 222), wxSize( 70, 35), 0, wxDefaultValidator, wxT("LookUpCancelBtn"));
|
||||||
|
|
||||||
widgetPtrsSet = true;
|
widgetPtrsSet = true;
|
||||||
|
|
||||||
@@ -193,7 +194,7 @@ ClookUpDlg::ClookUpDlg(wxWindow *parent, wxChar *windowTitle, wxChar *tableName,
|
|||||||
lookup = new Clookup(tableName, colName, pDb, defDir);
|
lookup = new Clookup(tableName, colName, pDb, defDir);
|
||||||
if (!lookup)
|
if (!lookup)
|
||||||
{
|
{
|
||||||
wxMessageBox(wxT("Error allocating memory for 'Clookup'object."),wxT("Error..."));
|
wxMessageBox(wxT("Error allocating memory for 'Clookup' object."),wxT("Error..."));
|
||||||
Close();
|
Close();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -201,8 +202,8 @@ ClookUpDlg::ClookUpDlg(wxWindow *parent, wxChar *windowTitle, wxChar *tableName,
|
|||||||
if (!lookup->Open())
|
if (!lookup->Open())
|
||||||
{
|
{
|
||||||
wxString tStr;
|
wxString tStr;
|
||||||
tStr.Printf(wxT("Unable to open the table '%s'."),tableName);
|
tStr.Printf(wxT("Unable to open the table '%s'."), tableName);
|
||||||
wxMessageBox(tStr,wxT("ODBC Error..."));
|
wxMessageBox(tStr, wxT("ODBC Error..."));
|
||||||
Close();
|
Close();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -211,7 +212,7 @@ ClookUpDlg::ClookUpDlg(wxWindow *parent, wxChar *windowTitle, wxChar *tableName,
|
|||||||
lookup->SetWhereClause(where);
|
lookup->SetWhereClause(where);
|
||||||
if (!lookup->Query())
|
if (!lookup->Query())
|
||||||
{
|
{
|
||||||
wxMessageBox(wxT("ODBC error during Query()"),wxT("ODBC Error..."));
|
wxMessageBox(wxT("ODBC error during Query()"), wxT("ODBC Error..."));
|
||||||
Close();
|
Close();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -265,10 +266,11 @@ ClookUpDlg::ClookUpDlg(wxWindow *parent, wxChar *windowTitle, wxChar *tableName,
|
|||||||
// records are being saved, but not committed to the db, yet should be included
|
// records are being saved, but not committed to the db, yet should be included
|
||||||
// in the lookup window.
|
// in the lookup window.
|
||||||
//
|
//
|
||||||
ClookUpDlg::ClookUpDlg(wxWindow *parent, wxChar *windowTitle, wxChar *tableName,
|
ClookUpDlg::ClookUpDlg(wxWindow *parent, const wxString &windowTitle, const wxString &tableName,
|
||||||
wxChar *dispCol1, wxChar *dispCol2, wxChar *where, wxChar *orderBy,
|
const wxString &dispCol1, const wxString &dispCol2,
|
||||||
|
const wxString &where, const wxString &orderBy,
|
||||||
wxDb *pDb, const wxString &defDir, bool distinctValues,
|
wxDb *pDb, const wxString &defDir, bool distinctValues,
|
||||||
wxChar *selectStmt, int maxLenCol1, bool allowOk)
|
const wxString &selectStmt, int maxLenCol1, bool allowOk)
|
||||||
: wxDialog (parent, LOOKUP_DIALOG, wxT("Select..."), wxDefaultPosition, wxSize(400, 290))
|
: wxDialog (parent, LOOKUP_DIALOG, wxT("Select..."), wxDefaultPosition, wxSize(400, 290))
|
||||||
{
|
{
|
||||||
wxBeginBusyCursor();
|
wxBeginBusyCursor();
|
||||||
@@ -278,10 +280,11 @@ ClookUpDlg::ClookUpDlg(wxWindow *parent, wxChar *windowTitle, wxChar *tableName,
|
|||||||
widgetPtrsSet = false;
|
widgetPtrsSet = false;
|
||||||
lookup = 0;
|
lookup = 0;
|
||||||
lookup2 = 0;
|
lookup2 = 0;
|
||||||
noDisplayCols = (wxStrlen(dispCol2) ? 2 : 1);
|
|
||||||
|
noDisplayCols = (dispCol2.Length() == 0 ? 1 : 2);
|
||||||
col1Len = 0;
|
col1Len = 0;
|
||||||
|
|
||||||
wxFont fixedFont(12,wxMODERN,wxNORMAL,wxNORMAL);
|
wxFont fixedFont(12, wxMODERN, wxNORMAL, wxNORMAL);
|
||||||
|
|
||||||
// this is done with fixed font so that the second column (if any) will be left
|
// this is done with fixed font so that the second column (if any) will be left
|
||||||
// justified in the second column
|
// justified in the second column
|
||||||
@@ -423,6 +426,13 @@ void ClookUpDlg::OnClose(wxCloseEvent& event)
|
|||||||
} // ClookUpDlg::OnClose
|
} // ClookUpDlg::OnClose
|
||||||
|
|
||||||
|
|
||||||
|
void ClookUpDlg::OnDClick( wxCommandEvent &event )
|
||||||
|
{
|
||||||
|
wxWindow *win = (wxWindow*) event.GetEventObject();
|
||||||
|
OnCommand( *win, event );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void ClookUpDlg::OnButton( wxCommandEvent &event )
|
void ClookUpDlg::OnButton( wxCommandEvent &event )
|
||||||
{
|
{
|
||||||
wxWindow *win = (wxWindow*) event.GetEventObject();
|
wxWindow *win = (wxWindow*) event.GetEventObject();
|
||||||
@@ -436,8 +446,15 @@ void ClookUpDlg::OnCommand(wxWindow& win, wxCommandEvent& WXUNUSED(event))
|
|||||||
|
|
||||||
if (widgetPtrsSet)
|
if (widgetPtrsSet)
|
||||||
{
|
{
|
||||||
|
bool doubleclick = false;
|
||||||
|
// Double click
|
||||||
|
if (widgetName == pLookUpSelectList->GetName())
|
||||||
|
{
|
||||||
|
doubleclick = true;
|
||||||
|
} // Double click
|
||||||
|
|
||||||
// OK Button
|
// OK Button
|
||||||
if (widgetName == pLookUpOkBtn->GetName())
|
if (widgetName == pLookUpOkBtn->GetName() || doubleclick)
|
||||||
{
|
{
|
||||||
if (pLookUpSelectList->GetSelection() != -1)
|
if (pLookUpSelectList->GetSelection() != -1)
|
||||||
{
|
{
|
||||||
@@ -472,6 +489,7 @@ void ClookUpDlg::OnCommand(wxWindow& win, wxCommandEvent& WXUNUSED(event))
|
|||||||
wxStrcpy (ListDB_Selection2,wxT(""));
|
wxStrcpy (ListDB_Selection2,wxT(""));
|
||||||
Close();
|
Close();
|
||||||
} // Cancel Button
|
} // Cancel Button
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}; // ClookUpDlg::OnCommand
|
}; // ClookUpDlg::OnCommand
|
||||||
|
@@ -68,14 +68,14 @@ class ClookUpDlg : public wxDialog
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
// This is a generic lookup constructor that will work with any table and any column
|
// This is a generic lookup constructor that will work with any table and any column
|
||||||
ClookUpDlg(wxWindow *parent,
|
ClookUpDlg(wxWindow *parent,
|
||||||
wxChar *windowTitle,
|
const wxString &windowTitle,
|
||||||
wxChar *tableName,
|
const wxString &tableName,
|
||||||
wxChar *colName,
|
const wxString &colName,
|
||||||
wxChar *where,
|
const wxString &where,
|
||||||
wxChar *orderBy,
|
const wxString &orderBy,
|
||||||
wxDb *pDb,
|
wxDb *pDb,
|
||||||
const wxString &defDir);
|
const wxString &defDir);
|
||||||
|
|
||||||
//
|
//
|
||||||
// This is a generic lookup constructor that will work with any table and any column.
|
// This is a generic lookup constructor that will work with any table and any column.
|
||||||
@@ -102,23 +102,24 @@ class ClookUpDlg : public wxDialog
|
|||||||
// in the lookup window.
|
// in the lookup window.
|
||||||
//
|
//
|
||||||
ClookUpDlg(wxWindow *parent,
|
ClookUpDlg(wxWindow *parent,
|
||||||
wxChar *windowTitle,
|
const wxString &windowTitle,
|
||||||
wxChar *tableName,
|
const wxString &tableName,
|
||||||
wxChar *dispCol1, // Must have at least 1 display column
|
const wxString &dispCol1, // Must have at least 1 display column
|
||||||
wxChar *dispCol2, // Optional
|
const wxString &dispCol2, // Optional
|
||||||
wxChar *where,
|
const wxString &where,
|
||||||
wxChar *orderBy,
|
const wxString &orderBy,
|
||||||
wxDb *pDb, // Database connection pointer
|
wxDb *pDb, // Database connection pointer
|
||||||
const wxString &defDir,
|
const wxString &defDir,
|
||||||
bool distinctValues, // e.g. SELECT DISTINCT ...
|
bool distinctValues, // e.g. SELECT DISTINCT ...
|
||||||
wxChar *selectStmt = 0, // If you wish to query by SQLstmt (complicated lookups)
|
const wxString &selectStmt = wxEmptyString, // If you wish to query by SQLstmt (complicated lookups)
|
||||||
int maxLenCol1 = 0, // Mandatory if querying by SQLstmt
|
int maxLenCol1 = 0, // Mandatory if querying by SQLstmt
|
||||||
bool allowOk = true); // is the OK button enabled
|
bool allowOk = true); // is the OK button enabled
|
||||||
|
|
||||||
void OnButton( wxCommandEvent &event );
|
void OnButton(wxCommandEvent &event);
|
||||||
void OnCommand(wxWindow& win, wxCommandEvent& event);
|
void OnCommand(wxWindow& win, wxCommandEvent& event);
|
||||||
void OnClose(wxCloseEvent& event);
|
void OnClose(wxCloseEvent& event);
|
||||||
void OnActivate(bool) {}; // necessary for hot keys
|
void OnActivate(bool) {}; // necessary for hot keys
|
||||||
|
void OnDClick(wxCommandEvent &event);
|
||||||
|
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
}; // class ClookUpDlg
|
}; // class ClookUpDlg
|
||||||
|
Reference in New Issue
Block a user