There is a new development version of DbTalk which works with newest Ruby,
Fox and FXRuby versions. Download
dbtalk075_050314.zip (29kB).
Ruby 1.8.2+ is recommended, FXRuby version later or equal to 1.2.5 is required
(and consequently Fox 1.2.x).
By calling it "development version" I mean it still does not have a couple
of features I want to add before another release. However it is pretty stable.
Please note a few changes in key shortcuts I made to be more compatible
with other database managers. The most important is executing a command with
F5 which seems to be a de-facto standard. For others see menus.
Among new features are:
* multiple result set support
* db tree and result table now support clipboard and DND operations
DbTalk is an interactive GUI based tool for database querying, programming, administration etc. It consists of three basic parts:
DbTalk is written in a modern interpreted language called Ruby. It uses the portable graphical toolkit FOX for the GUI. DbTalk runs on various UNIX flavors (notably Linux and FreeBSD) as well as on MS Windows.
Important features of DbTalk are:
It is now possible to download a development version of DbTalk. It is not yet ready for release but contains quite a few new features which you may want to try (e.g. multiple result sets, cleaner GUI, support for clipboard and DND operations from the database tree and the result table). See the download section.
The new home of DbTalk is www.insula.cz/dbtalk/. Please update your bookmarks.
Current version is 0.73. This version brings very minor changes made to ensure that DbTalk can run with more different versions of Ruby and FXRuby. Tested configurations are listed in the Requirements section.
DbTalk 0.72 introduced following changes:
At the moment there are no command line options. Just run ruby dbtalk.rb and if you have all required packages installed (see bellow) the program starts up.
There is a message about loaded database libraries in the bottom frame. You can open a database connection either with the menu command or using the keyboard shortcut. The connection window pops-up.
Connection data can be stored in profiles.
If you open a new connection to a database DbTalk creates the tree view
of the database structure. The editor frame waits for your SQL commands.
The bottom text frame contains status messages obtained from the backend.
Pressing Ctrl-E you send the SQL command under the cursor to the database backend. If the command returns a result set it is displayed in the table.
You can switch freely between tabular and text views.
Pressing F5 while editing brings you the text completion dialog.
The tree view has its own context sensitive small menu accessible with right mouse button click.
You can open several database connections and use the combo box to switch them.
In the options menu you can customize various features of DbTalk. The following dialog allows you to set syntax highlighting colors.
The menu popups after clicking on the DB tree with the right mouse button. It is partially context sensitive - not all listed options are always available.
The fields in the connection opening dialog were originally designed for MySQL and PostgreSQL. If you want to make an ODBC connection you must first setup an ODBC data source (in your ODBC installation properties). Use the name of the data source as the database name in the dialog. The other useful fields for ODBC are user name and password. The host and port field is not used for ODBC.
Transaction support should be considered incomplete in DbTalk 0.72. Please use it with caution.
It is possible to toggle autocommit status for the session using a menu command or a toolbar button. The initial autocommit status is checked during connection opening. (At the moment this is not true for MySQL because I do not know how to find the autocommit status out with an SQL command. For MySQL it is simply supposed that the autocommit is on when a session begins.) The toolbar button indicates current status with labels. 'Auto' means the autocommit is on. 'Man' means the autocommit is off.
There are also menu commands and toolbar buttons for commit and rollback. These just send the appropriate SQL command to the backend.
DbTalk does not contain a full featured SQL parser. Instead it uses a few regular expressions to find boundaries of the current SQL query. If you want to know what exactly is sent to the server use Ctl-= for selecting the current query. The selected string is stripped of blanks and also the trailing semicolon is removed before sending to the server. SQL comments are left untouched which may cause problems with some databases (for example MS Access).
Syntax highlighting is also based on the regular expression matching. It recognizes three categories of highlighted elements: literals (text or number constants), comments (from leading '--' to the end of line) and keywords. Keywords are defined in the source code at the moment. If you know Ruby you can easily find the appropriate part in dbtalk.rb. Keywords can have one of three possible colors associated with them. The next version of DbTalk may have syntax highlighting definitions in a separate file for easier customizing.
The list of possible completions is created by combining SQL keywords and the database element names shown at the database tree. One of these groups can be switched off in the completion dialog. The setting is remembered. If there are many suggestions in the completion list you can enter a regular expression which limits the display. The list widget itself supports limited search. If you press a key the current item in the list is set to the first word beginning with the key.
The Fox toolkit table widget use to have (IMO) a nice colorized background. However the default is white in newer versions. You can use the item in the options menu to set the original colors for the table.
DbTalk is still in its development stage and has many limitations. I plan to add at least these features in the future (listed in random order):
DbTalk is written in Ruby and uses FOX graphical toolkit wrapped in FXRuby. DbTalk loads libraries for MySQL and/or PostgreSQL and/or ODBC access if they are present. ODBC and MySQL libraries exist for both UNIX and Windows. As far as I know the Ruby PostgreSQL library exists only for UNIX.
When running DbTalk press F1 to see your versions of Ruby and Fox. In the log window you can find out what databases are supported (e.g. DbTalk could read the appropriate libraries).
DbTalk was tested with the following versions of Ruby/FXRuby:
The primary development platform for DbTalk is FreeBSD and it is also well tested on Linux. It should be possible to run DbTalk on any other modern UNIX flavor. However there is no universal description how to set things up. The table bellow overviews DbTalk dependencies.
| DbTalk | |||||
|
Ruby (recommended version 1.8.0+ or 1.6.8) |
|||||
|
FXRuby
- Ruby/FOX interface (recommended version 1.0.25+) |
MySQL/Ruby
- Ruby API for MySQL (recommended version 2.4.2+) |
Ruby Postgres
- Ruby API for PostgreSQL (recommended version 0.7.1+) |
Ruby/ODBC
- extension library to use ODBC data sources from Ruby (recommended version 0.95+) |
||
|
FOX
- portable GUI toolkit (recommended version 1.0.32+) |
MySQL client library | PostgreSQL client library | unixODBC | ||
| ODBC driver 1 | ODBC driver 2 | ODBC driver ... | |||
| Linux, FreeBSD, UNIX | |||||
The installation can be divided into several independent steps:
Depending on your preferences and skills you can compile from sources or you can use precompiled packages available for some systems.
If you install the all-in-one package from Pragmatic Programmers you should have all you need to run DbTalk and connect to ODBC and MySQL databases. It is possible to install a newer version of FXRuby over this installation (which brings you also a recent version of FOX).
The following table shows detailed application and library structure for running DbTalk on Windows. Note that components included in the Pragmatic Programmers installer have the pink background. The ODBC drivers are either a part of MS Windows or you have to install them individually.
| DbTalk | ||||
|
Ruby (recommended version 1.8.0+ or 1.6.8 from the all-in-one installer which also contains all components listed in pink cells) |
||||
|
FXRuby
- Ruby/FOX interface (recommended version 1.0.25+) |
MySQL/Ruby
- Ruby API for MySQL (recommended version 2.4.2+) |
Ruby/ODBC
- extension library to use ODBC data sources from Ruby (recommended version 0.95+) |
||
|
FOX
- portable GUI toolkit (recommended version 1.0.32+) |
MySQL client library | ODBC driver 1 | ODBC driver 2 | ODBC driver ... |
|
MS Windows 98/NT/2000/ME/XP (recommended version MS Windows 2000 Professional or MS Windows XP Professional) |
||||
DbTalk package contains following files and folders:
At the moment there is no installator. Just unzip the package wherever you want to launch DbTalk from. You can run DbTalk from command line using ruby dbtalk.rb (assuming the Ruby interpreter is in your path). If you have .rb files associated with Ruby on Windows you can start DbTalk by double clicking on dbtalk.rb. I would recommend renaming dbtalk.rb to dbtalk.rbw (the 'w' at the end) which will suppress the console window. On UNIX you can strip the .rb extension and run chmod +x dbtalk. This allows you to start the program typing just dbtalk.
The last release version dbtalk073.zip (136kB) is obsolete.
Currently usable version is dbtalk075_050314.zip (29kB)
If you need the older version you can download dbtalk072.zip (135kB) or dbtalk071.zip (132kB) or dbtalk07.zip (131kB) or dbtalk06.zip (95kB) or dbtalk05.zip (89kB) or dbtalk04.zip (51kB).
Your feedback is welcome. Mail me to dali@insula.cz