Sybtcl change history Version 1.0, June 1992 First general release - it lives! -------------------------------------------------------------------------------- Version 1.1, August 1992 Added better handling for text and image datatypes. Two new commands, sybwritetext and sybreadtext allow text/image columns to be read from/written to files. Also added "maxtext" index into sybmsg to allow a larger amount (user defined) of text/image to be returned via sybnext. Updated "wisql" sample program to use Tk 2.2 text widget, returned text columns are inserted into results listbox with breaks at newlines, view names of rules, triggers, views in addtition to tables and procs. Examine the text of rules, triggers, views, procs. Report count of rows returned. Added two more samples showing sybwritetext, sybreadtext commands. Updated man page for new features. -------------------------------------------------------------------------------- Version 1.2, October 1992 Changed where dbsetopt is called to set DBTEXTSIZE. Version 1.2 fixes a bug introduced in version 1.1 that sometimes causes the server to abort a query with a 703 error (back-to-back execution of the exact same SQL code would alternate success and failure.) Accumulate server message numbers (msgno) the same way msgtext is accumulated. Updated "wisql" - showFields now shows all characters of a column name (up to 30). Sybmsg(msgno) added to error messages. Changed message window to Message class. Added arrow key bindings (right,left) to SQL Text window and Entry classes. Added Shift-Return and Control-Return binding to SQL Text window to invoke "Execute". Added a menu button to the signon window to select a server from the interfaces file. Updated "pubs_pix" to set a large sybmsg(maxtext) value when retrieving images. Updated man page for sybmsg(maxtext) and (sybmsgno). -------------------------------------------------------------------------------- Version 1.3, May 1993 Fix sybtcl.c - error handler is passed a NULL pointer for oserrstr when the error is not related to oserr. This seemed to be a problem on every machine except the one I developed on, where a vaild pointer to a nil string was passed. This fixes segmentation faults that usually appear with a bad connect id or password. Also, two others - replace strncpy() with strcpy() in Tcl_SybSql, where no length was specified (or needed); in parse_columns(), if a "nullvalue" was specified it never was copied - wrong buffer. Wisql changed to support Tk 3.0+ by changing the toplevel widget pathnames to lower case. Change #! exec line to wishx to reflect Extended Tcl's new binary name. Also find user "sybase" home directory in "ypcat passwd" or /etc/passwd if SYBASE environment variable is not set. Change the "Execute" menu button to "Cancel" while the SQL is exec'ed to cancel long running queries. Change other samples to exec /usr/local/bin/wishx. -------------------------------------------------------------------------------- Version 2.0, October 1993 Support for Tcl 7.0 - a few minor changes to the existing code. Added ?appname? argument on sybconnect from Jan Hendrik. Changed sizing of buffer in getting server messages. Changed malloc/free to ckalloc/ckfree if using TCL_MEM_DEBUG Wisql now called wisqlite & changed to Tk 3.3 new pack syntax. De Clarke's UCO Wisql included. New - Makefile and appinit sed script. -------------------------------------------------------------------------------- Version 2.1, February 1994 Added "commands" option to sybnext; Sybtcl_Init() now returns (int). wisqlite - uses new sybnext when possible De Clarke's UCO Wisql included. -------------------------------------------------------------------------------- Version 2.11, April 1994 change sybtcl.c - allow sybcols to return column names on empty result set. De Clarke's UCO Wisql included. -------------------------------------------------------------------------------- Version 2.2, October 1994 change sybtcl.c - now allows real numeric nulls ("") to be returned, "default" is now used to set previous behavior (potential incompatibility). can format date columns to a specific format. clean up remainder of external function names. update man page. minor changes to wisqlite: include command ring buffer from Oratcl's wosql; set null value dialog. change make/install procedure to use autoconf. De Clarke's latest UCO Wisql included. -------------------------------------------------------------------------------- Version 2.3, August, 1995 changes to sybtcl.c - change behavior of sybnext when dbresults returns FAIL (no error); allow sybcancel to cancel anytime, not just on previous success; allow optional interfaces file parameter ?ifile? on sybconnect; change sybnext with tcl-commands to return on crossing from REG_ROW to compute rows, compute row is buffered to be returned on next sybnext; added "async" option to sybsql, sybpoll command to check results; added some casts to make gcc happy; small changes for Tcl 7.4 (remove need for tclUnix.h/tclPort.h) set dbversion to enable system 10 types numeric & decimal; added handling for float types, with optional user defined precision in sybmsg(floatprec) wisqlite - added selection handler bindings from wosql. change pack order so that broken window managers won't cut off widgets on bottom. add option dialog to set floatprec changes configure.in to find tcl7.4/tk4.0, support newer autoconf macros. Added hunt for -lsocket -lnsl to configure.in, added to makefile for tclsh target lib. -------------------------------------------------------------------------------- Version 2.4, December, 1996 changes to sybtcl.c - execute dbsetopt() only on change of sybmsg(maxtext, and cancel results so that rep server/open servers won't complain. malloc buffer of msgtext in msghandler so it can grow large. added sybmsg(fixedchar) so trailing spaces from char/varchar won't be trimmed, allows stored procedure text to be extracted correctly. Add call to Tcl 7.5 Tcl_PkgProvide() to declare package info. make floats really look like floats, add .0 if needed, so that float value can be used in expr without expr thinking it is too big for an int. fix sybnextall to quote two occurances of substitution char, and to accept a user defined substitution char. add initialized check to prevent reinitializing on subsequent 'load'. changes to wisqlite - use sybmsg(fixedchar) to display stored procedure text without crunching spaces. add package require to force autoloading Sybtcl shared lib. New! sybtcl-capi - use Sybtcl from C, giving a simple interface over DB-Lib. written as a quick hack (Hi Roger!) to enable Sybtcl use from other languages/environments. i haven't done a lot of testing with it, so feedback is welcome. changes to Makefile/configure - nearly a total rewrite, should allow Sybtcl to be nearly independent of Tcl/Tk/TclX source directories. Relies on Tcl/Tk/TclX to be installed properly, using tclConfig.sh (et.al) to get version numbers, library info, tclAppInit.c files, etc. Also build libSybtcl.so on request, using Sybase shared lib also. Installs or updates and pkgIndex.tcl files in lib/tclx.x --------------------------------------------------------------------------------