]> git.saurik.com Git - wxWidgets.git/blob - samples/db/listdb.h
fixes, completions for CW 8
[wxWidgets.git] / samples / db / listdb.h
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: listdb.h
3 // Purpose: wxWidgets database demo app
4 // Author: George Tasker
5 // Modified by:
6 // Created: 1996
7 // RCS-ID: $Id$
8 // Copyright: (c) 1996 Remstar International, Inc.
9 // Licence: wxWindows licence
10 ///////////////////////////////////////////////////////////////////////////////
11
12 #if defined(__GNUG__) && !defined(__APPLE__)
13 #pragma interface "listdb.h"
14 #endif
15
16 /*
17 Contains dialog class for creating a data table lookup listbox
18 */
19
20 #ifndef LISTDB_DOT_H
21 #define LISTDB_DOT_H
22
23
24 #include "wx/dbtable.h"
25
26 const int LOOKUP_COL_LEN = 250;
27
28 // Clookup class
29 class Clookup : public wxDbTable
30 {
31 public:
32
33 wxChar lookupCol[LOOKUP_COL_LEN+1];
34
35 Clookup(wxString tblName, wxString colName, wxDb *pDb, const wxString &defDir=wxT(""));
36
37 }; // Clookup
38
39
40 // Clookup2 class
41 class Clookup2 : public wxDbTable
42 {
43 public:
44
45 wxChar lookupCol1[LOOKUP_COL_LEN+1];
46 wxChar lookupCol2[LOOKUP_COL_LEN+1];
47
48 Clookup2(wxString tblName, wxString colName1, wxString colName2, wxDb *pDb, const wxString &defDir=wxT(""));
49
50 }; // Clookup2
51
52
53 // ClookUpDlg class
54 class ClookUpDlg : public wxDialog
55 {
56 private:
57 bool widgetPtrsSet;
58 int currentCursor;
59 Clookup *lookup;
60 Clookup2 *lookup2;
61 int noDisplayCols;
62 int col1Len;
63
64 wxListBox *pLookUpSelectList;
65 wxButton *pLookUpOkBtn;
66 wxButton *pLookUpCancelBtn;
67
68 public:
69
70 // This is a generic lookup constructor that will work with any table and any column
71 ClookUpDlg(wxWindow *parent,
72 const wxString &windowTitle,
73 const wxString &tableName,
74 const wxString &colName,
75 const wxString &where,
76 const wxString &orderBy,
77 wxDb *pDb,
78 const wxString &defDir);
79
80 //
81 // This is a generic lookup constructor that will work with any table and any column.
82 // It extends the capabilites of the lookup dialog in the following ways:
83 //
84 // 1) 2 columns rather than one
85 // 2) The ability to select DISTINCT column values
86 //
87 // Only set distinctValues equal to true if necessary. In many cases, the constraints
88 // of the index(es) will enforce this uniqueness. Selecting DISTINCT does require
89 // overhead by the database to ensure that all values returned are distinct. Therefore,
90 // use this ONLY when you need it.
91 //
92 // For complicated queries, you can pass in the sql select statement. This would be
93 // necessary if joins are involved since by default both columns must come from the
94 // same table.
95 //
96 // If you do query by sql statement, you must pass in the maximum length of column1,
97 // since it cannot be derived when you query using your own sql statement.
98 //
99 // The optional database connection can be used if you'd like the lookup class
100 // to use a database pointer other than the READONLY_DB of the app. This is necessary
101 // if records are being saved, but not committed to the db, yet should be included
102 // in the lookup window.
103 //
104 ClookUpDlg(wxWindow *parent,
105 const wxString &windowTitle,
106 const wxString &tableName,
107 const wxString &dispCol1, // Must have at least 1 display column
108 const wxString &dispCol2, // Optional
109 const wxString &where,
110 const wxString &orderBy,
111 wxDb *pDb, // Database connection pointer
112 const wxString &defDir,
113 bool distinctValues, // e.g. SELECT DISTINCT ...
114 const wxString &selectStmt = wxEmptyString, // If you wish to query by SQLstmt (complicated lookups)
115 int maxLenCol1 = 0, // Mandatory if querying by SQLstmt
116 bool allowOk = true); // is the OK button enabled
117
118 void OnButton(wxCommandEvent &event);
119 void OnCommand(wxWindow& win, wxCommandEvent& event);
120 void OnClose(wxCloseEvent& event);
121 void OnActivate(bool) {}; // necessary for hot keys
122 void OnDClick(wxCommandEvent &event);
123
124 DECLARE_EVENT_TABLE()
125 }; // class ClookUpDlg
126
127 #define LOOKUP_DIALOG 500
128
129 #define LOOKUP_DIALOG_SELECT 501
130 #define LOOKUP_DIALOG_OK 502
131 #define LOOKUP_DIALOG_CANCEL 503
132
133 #endif // LISTDB_DOT_H
134
135 // ************************************ listdb.h *********************************