The purpose of this project is to provide a simple, generic GUI database browsing frontend. The
tool is a very simple aggregation of the
Qt database classes. The database abstraction is provided
by the Qt database drivers. The drivers for PostgreSQL and MySQL have been found to work well.
The drivers for ODBC3 are not tested at the moment (although, so far, both the MySQL and PGSQL
ODBC3 drivers caused problems). If you have a commercial version of Qt, you can make use of the
bundled drivers for Oracle, TDS and DB2.
In principle, there is no reason why ODBC3 drivers for popular databases such as Oracle, DB2, Informix
as well as Firebird and SAP/DB shouldn't work. Nevertheless, it may be that the only way to get some of
these working is to create a native Qt database driver. This is something I'll be looking into much later.
The tool is currently stable and quite usable but not feature complete. The following features have
been completed:
- Tree browser for databases and tables
- Display of table descriptions
- Display of table contents in main window
- Execution of ad-hoc SQL queries in the query tab
- Command line history in the query tab
- Retrieval of database connection details from XML config file
- Retrieval of other configuration parameters from XML config file
- Prompting for connection password
- Addition of new connections via GUI to the running application and the config file
- Display database views with a separate icon
- Create a connection name independent of the database name
- A "Test" button when creating a new connection
- Dynamically generate a list of available drivers
- Configuration via autoconf
- Fixed bug with executing updates/inserts twice
- Refreshing of a DB connection
- Deleting of connections via the GUI
- Editting of connections via the GUI
- Check for the existence of ~/.qtsql
- Creation of skeleton config file
- Auto saving/restoring of history
The following features will be implemented as a requirement for a 1.0 release:
- Saving of queries and results
- Saving application dimensions on shutdown
- Detect PK/FK/UNIQUE constraints
- Many useful keyboard shortcuts
I do not consider the following features critical so I may never get around to doing
them. They are here as an indication of where the tool is (and isn't) heading. You may
also consider adding some of these yourself.
- Asynchronous connection to databases
- GUI configuration (set the application font and theme)
- GUI configuration of keyboard shortcuts
- Ability to dump table contents (or a query result)
- Port to Microsoft Windows (I don't plan to buy a Qt license for Windows so unless this can be legally facilitated by someone who has such a license, it won't be happening)
I have no plans to create a generic database administration tool. Thus, functionality such as
user administration, database backup, schema editting and permissions editting are not planned
to form part of this tool. If you want this functionality, you may consider looking at
Tora.
This tool is developed on a GNU/Linux based system but should run on any platform that supports
the Qt toolkit. In particular, once the
Unix-ism of checking for the config file in the home
directory is removed, there's no reason why it shouldn't successfully run on Microsoft Windows.
Finally, thanks to all of the free software developers out there that make these things possible.
Phil Bradley, March 2004.