wxWidgets/samples/db/listdb.h
George Tasker e689d52ab5 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
2004-11-10 12:19:55 +00:00

136 lines
4.9 KiB
C++

///////////////////////////////////////////////////////////////////////////////
// Name: listdb.h
// Purpose: wxWidgets database demo app
// Author: George Tasker
// Modified by:
// Created: 1996
// RCS-ID: $Id$
// Copyright: (c) 1996 Remstar International, Inc.
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "listdb.h"
#endif
/*
Contains dialog class for creating a data table lookup listbox
*/
#ifndef LISTDB_DOT_H
#define LISTDB_DOT_H
#include "wx/dbtable.h"
const int LOOKUP_COL_LEN = 250;
// Clookup class
class Clookup : public wxDbTable
{
public:
wxChar lookupCol[LOOKUP_COL_LEN+1];
Clookup(wxString tblName, wxString colName, wxDb *pDb, const wxString &defDir=wxT(""));
}; // Clookup
// Clookup2 class
class Clookup2 : public wxDbTable
{
public:
wxChar lookupCol1[LOOKUP_COL_LEN+1];
wxChar lookupCol2[LOOKUP_COL_LEN+1];
Clookup2(wxString tblName, wxString colName1, wxString colName2, wxDb *pDb, const wxString &defDir=wxT(""));
}; // 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,
const wxString &windowTitle,
const wxString &tableName,
const wxString &colName,
const wxString &where,
const wxString &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,
const wxString &windowTitle,
const wxString &tableName,
const wxString &dispCol1, // Must have at least 1 display column
const wxString &dispCol2, // Optional
const wxString &where,
const wxString &orderBy,
wxDb *pDb, // Database connection pointer
const wxString &defDir,
bool distinctValues, // e.g. SELECT DISTINCT ...
const wxString &selectStmt = wxEmptyString, // 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
void OnDClick(wxCommandEvent &event);
DECLARE_EVENT_TABLE()
}; // class ClookUpDlg
#define LOOKUP_DIALOG 500
#define LOOKUP_DIALOG_SELECT 501
#define LOOKUP_DIALOG_OK 502
#define LOOKUP_DIALOG_CANCEL 503
#endif // LISTDB_DOT_H
// ************************************ listdb.h *********************************