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. So far, the drivers for PostgreSQL and MySQL have been found to work well.
In principle, there is no reason why ODBC drivers for popular databases such as Oracle, DB2, Informix
as well as Firebird and SAP/DB shouldn't work via the Qt ODBC3 abstraction layer. However, some preliminary
tests with these have not been promising. 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.
At the moment, it is only possible to build the system on Unix and similar systems. Since Trolltech have released
a version of Qt for OSX under the GPL and have announced their intention to do likewise for Win32, it should be
possible to provide ports for both of these platforms. For the moment though, I just provide the source.
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
- Loading of queries
- Saving of results
- Keyboard shortcuts
The following features will be implemented as a requirement for a 1.0 release:
- Saving application dimensions on shutdown
- Detect PK/FK/UNIQUE constraints
- Syntax highlighting in the SQL query panel. The mechanism for achieving this will change in Qt4 so I'm waiting to see how this will work.
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 (QtSQL seems not to support this)
- GUI configuration (set the application font and theme)
- GUI configuration of keyboard shortcuts
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.
Finally, thanks to all of the free software developers out there that make these things possible.
Phil Bradley, April 2005.