What is UCO-Wisql?

Wisql (by Tom Poindexter) is an X11 version of isql (Windowing-ISQL) which gives you a SQL query editing window, a results window, and a lot of menus and buttons. It includes a ring buffer of 10 commands which you can recall and re-execute, a 'cancel query' button for queries that seem to be getting out of hand, etc.

I enhanced it to add online hypertext-style help and a couple of "EZ" modes for non-SQL speakers. The EZ tools are a data editor and a simple report generator (I do mean simple, only one table at a time, no joins). My version supports a sybase-based data dictionary, for context sensitive help not only on the tool, but on the data.

Both query and results can be saved to files, and queries can be loaded from files. Results can be printed directly from wisql. There is some simple formatting in the EZ-report tool. If you have TclXess, the results from queries can be redirected into the running spreadsheet at the current cell location.

Definitions of objects can be viewed purely by pointing and clicking (such as views, triggers, rules, etc). Object definitions can be transferred to the query window for editing.

Wisql is primarily for the more advanced user. That is, you have to know the underlying schema of the database, which table has what information in it, etc. I have given it to naive users as a data editing tool and they have succeeded, but only with written instructions to guide them through the databases and tables in the server. It is, however, a great tool for the dba or for the slightly more advanced user (scientific or administrative) who is not afraid of the schema but hates isql (who wouldn't). I have it up and running all day long, myself; it is my standard window on the server, so to speak.

I would emphatically NOT try to use wisql for production key entry.

Wisql requires no support tables in the Sybase server, though it can make use of a table called "forbidden" which prohibits interactive manipulation of certain fields in production tables. (These tables also have trigger-based preventions rigged to prohibit alterations to those fields at nestlevels lower than expected, but if you don't want to write triggers you can use the wisql mechanism). It can also use the data dictionary table mentioned above.

Wisql requires no proprietary software other than a copy of Sybase's DB-Lib for your architecture, and a Sybase server somewhere on the net that is willing to talk to you. The user chooses a target server at login time from a menu of available servers, and the server cannot be changed from then on. A new instantiation is required to connect to a different server (I am thinking of removing this constraint in a future release).

Wisql is distributed along with sybtcl, and is making its way here and there (my last bug report came from an Ericsson office in Germany, and my last non-bug contact was from the Aussie Red Cross in Tasmania). I try to fix bugs as fast as I can. I am not paid to distribute wisql, so my unit's internal demands have to be satisfied first; but I like to hear from users and I respond whenever I have a moment to breathe.

Wisql is available for Tcl 6 (not supported, an old and rather buggy version), Tcl7.3/Tk3.6 (support ended Sep 1995) and the new Tcl7.4/Tk4.0 (new port, not too stable yet but seems to work). It's more than 50% Tom's code, so any good things you have to say should be shared with him.

Get wisql at ftp.ucolick.org, our archive server.