X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7e616b1050e4aaa4b8468d82ddf5b85d46412a3c..2beb01db001c9c22e4865fba3ba9b46ff5fc2dda:/samples/db/listdb.h?ds=sidebyside diff --git a/samples/db/listdb.h b/samples/db/listdb.h index f3aa8f24f6..070a0982e2 100644 --- a/samples/db/listdb.h +++ b/samples/db/listdb.h @@ -14,7 +14,7 @@ #endif /* - Contains dialog class for creating a data table lookup listbox + Contains dialog class for creating a data table lookup listbox */ #ifndef LISTDB_DOT_H @@ -23,99 +23,105 @@ #include -const LOOKUP_COL_LEN = 250; - -// Global database connection -extern wxDB *READONLY_DB; +const int LOOKUP_COL_LEN = 250; // Clookup class -class Clookup : public wxTable +class Clookup : public wxDbTable { - public: + public: - char lookupCol[LOOKUP_COL_LEN+1]; + wxChar lookupCol[LOOKUP_COL_LEN+1]; - Clookup(char *tblName, char *colName); + Clookup(wxChar *tblName, wxChar *colName, wxDb *pDb, const wxString &defDir=""); }; // Clookup + // Clookup2 class -class Clookup2 : public wxTable +class Clookup2 : public wxDbTable { - public: + public: - char lookupCol1[LOOKUP_COL_LEN+1]; - char lookupCol2[LOOKUP_COL_LEN+1]; + wxChar lookupCol1[LOOKUP_COL_LEN+1]; + wxChar lookupCol2[LOOKUP_COL_LEN+1]; - Clookup2(char *tblName, char *colName1, char *colName2, wxDB *pDb); + Clookup2(wxChar *tblName, wxChar *colName1, wxChar *colName2, wxDb *pDb, const wxString &defDir=""); }; // Clookup2 + +// ClookUpDlg class class ClookUpDlg : public wxDialog { - private: - bool widgetPtrsSet; - int currentCursor; - Clookup *lookup; - Clookup2 *lookup2; - int noDisplayCols; - int col1Len; - - wxListBox *pLookUpSelectList; - wxButton *pLookUpOkBtn; - wxButton *pLookUpCancelBtn; - - public: - - // This is a generic lookup constructor that will work with any table and any column - ClookUpDlg(wxWindow *parent, - char *windowTitle, - char *tableName, - char *colName, - char *where, - char *orderBy); - - // - // This is a generic lookup constructor that will work with any table and any column. - // It extends the capabilites of the lookup dialog in the following ways: - // - // 1) 2 columns rather than one - // 2) The ability to select DISTINCT column values - // - // Only set distinctValues equal to true if necessary. In many cases, the constraints - // of the index(es) will enforce this uniqueness. Selecting DISTINCT does require - // overhead by the database to ensure that all values returned are distinct. Therefore, - // use this ONLY when you need it. - // - // For complicated queries, you can pass in the sql select statement. This would be - // necessary if joins are involved since by default both columns must come from the - // same table. - // - // If you do query by sql statement, you must pass in the maximum length of column1, - // since it cannot be derived when you query using your own sql statement. - // - // The optional database connection can be used if you'd like the lookup class - // to use a database pointer other than the global READONLY_DB. This is necessary if - // records are being saved, but not committed to the db, yet should be included - // in the lookup window. - // - ClookUpDlg(wxWindow *parent, - char *windowTitle, - char *tableName, - char *dispCol1, // Must have at least 1 display column - char *dispCol2, // Optional - char *where, - char *orderBy, - bool distinctValues, // e.g. SELECT DISTINCT ... - char *selectStmt = 0, // If you wish to query by SQLstmt (complicated lookups) - int maxLenCol1 = 0, // Mandatory if querying by SQLstmt - wxDB *pDb = READONLY_DB, // Database connection pointer - bool allowOk = TRUE); // is the OK button enabled - - void OnCommand(wxWindow& win, wxCommandEvent& event); - bool OnClose(); - void OnActivate(bool) {}; // necessary for hot keys -}; + private: + bool widgetPtrsSet; + int currentCursor; + Clookup *lookup; + Clookup2 *lookup2; + int noDisplayCols; + int col1Len; + + wxListBox *pLookUpSelectList; + wxButton *pLookUpOkBtn; + wxButton *pLookUpCancelBtn; + + public: + + // This is a generic lookup constructor that will work with any table and any column + ClookUpDlg(wxWindow *parent, + wxChar *windowTitle, + wxChar *tableName, + wxChar *colName, + wxChar *where, + wxChar *orderBy, + wxDb *pDb, + const wxString &defDir); + + // + // This is a generic lookup constructor that will work with any table and any column. + // It extends the capabilites of the lookup dialog in the following ways: + // + // 1) 2 columns rather than one + // 2) The ability to select DISTINCT column values + // + // Only set distinctValues equal to TRUE if necessary. In many cases, the constraints + // of the index(es) will enforce this uniqueness. Selecting DISTINCT does require + // overhead by the database to ensure that all values returned are distinct. Therefore, + // use this ONLY when you need it. + // + // For complicated queries, you can pass in the sql select statement. This would be + // necessary if joins are involved since by default both columns must come from the + // same table. + // + // If you do query by sql statement, you must pass in the maximum length of column1, + // since it cannot be derived when you query using your own sql statement. + // + // The optional database connection can be used if you'd like the lookup class + // to use a database pointer other than the READONLY_DB of the app. This is necessary + // if records are being saved, but not committed to the db, yet should be included + // in the lookup window. + // + ClookUpDlg(wxWindow *parent, + wxChar *windowTitle, + wxChar *tableName, + wxChar *dispCol1, // Must have at least 1 display column + wxChar *dispCol2, // Optional + wxChar *where, + wxChar *orderBy, + wxDb *pDb, // Database connection pointer + const wxString &defDir, + bool distinctValues, // e.g. SELECT DISTINCT ... + wxChar *selectStmt = 0, // If you wish to query by SQLstmt (complicated lookups) + int maxLenCol1 = 0, // Mandatory if querying by SQLstmt + bool allowOk = TRUE); // is the OK button enabled + + void OnButton( wxCommandEvent &event ); + void OnCommand(wxWindow& win, wxCommandEvent& event); + void OnClose(wxCloseEvent& event); + void OnActivate(bool) {}; // necessary for hot keys + +DECLARE_EVENT_TABLE() +}; // class ClookUpDlg #define LOOKUP_DIALOG 500