ANNOUNCE: Sybtcl-2.5b2 & Oratcl-2.5b2 available

ANNOUNCE: Sybtcl-2.5b2 & Oratcl-2.5b2 available

Post by Tom Poindexte » Thu, 14 Aug 1997 04:00:00

(Sorry if this is a duplicate announcement; my normal news service is down for
the time being.-tp)

Sybtcl-2.5b2 and Oratcl-2.5b2 are now available for download and testing.

You can find the packages at:


What are Sybtcl & Oratcl?  They are database extensions for Tool Command
Language (Tcl) that allow access to Sybase and Oracle.  For a complete
README, follow either HTTP link noted above.

Summary of changes:

August 6, 1997
Beta 2 changes: (notes apply to both Sybtcl and Oratcl except where noted)

Sybtcl & Oratcl-Reorganized distribution directory (generic, unix, mac, win)

  "    "   "   -Changed configure, now builds shared library by default,
                consolidate extra lib searching (-lsocket -lnsl -ldnet_stub)

  "    "   "   -Versioning on installed directories and libs(eg:

  "    "   "   -All "keywords" now also recognized as "options"; eg.
                sybsql $h $sqlstr -async; orasql $c $sqlstr -parseonly

  "    "   "   -Wisqlite/Wosql: stripped requirement for TclX, almost portable
                to Windows now.  Menus still need some work.  Fix last

  "    "   "   -Windows DLLs precompiled for Tcl 7.6 and Tcl 8.0; new
                'install.tcl' script to pick correct dll to install.

  "    "   "   -Man pages also shipped in HTML, Postscript, and text.

  "    "   "   -More testing with Tcl 8.0 - works fine, still uses older
                string interface

Oratcl-Changed async behavior to include waiting for first fetch to complete.

Oratcl-check OCI return after fetch for disconnected network link (ORA-0600)

Sybtcl-include Linux ELF ct-libs in ./generic/ctcompat.

To do before final release:
o Try to find someone to do Oratcl/Sybtcl port to Mac (volunteers?)
o Include Mac binaries for Sybtcl/Oratcl
o Clean up rest of Wisqlite/Wosql
o Write .tek files for Teki install
o Write test suites (?)

Beta 1 changes:


* Windows NT support:  Makefile and DLL included.  Tested under Windows/NT only.
  Mac support is planned, I'm working with another Sybtcl/Mac user to get
  a Makefile and lib.

* CT-Lib compatiblity layer: Sybtcl normally uses Sybase's DB-Lib interface.
  I wrote a DB-Lib to CT-Lib (Sybase's other interface) emulation layer.  What
  this means is that it may be possible to port Sybtcl to Linux.  So far
  I've tested the CT-Lib compatibility on Solaris only.

* sybnext now accepts Tcl variables for binding:  I've added the ability to
  bind result columns to Tcl variables.  The old method of substituting columns
  into a code block still works.  Ex:

        sybsql $h "select au_lname, au_fname from authors"
        sybnext $h { puts "$lname, $fname } "" lname 1 fname 2

  will execute the 'puts' statement for every row returned, binding the
  Tcl variable 'lname' to column 1, 'fname' to column 2.

Oratcl -

* Windows NT support:  Makefile and DLL included.  Tested under Windows/NT only.
  Is anyone game to help with a Mac port?  email me.

* Cursor variables returned from PL/SQL:  The oraplexec command can now bind
  a cursor variable on return from PL/SQL, and fetch rows from that cursor. Ex:

        set exec_cur [oraopen $lda]
        set fetch_cur [oraopen $lda]
        oraplexec $exec_cur {begin
            open :empcursor for select empno, ename
            from emp where job = :job;
        } :job ANALYST :empcursor $fetch_cur
        orafetch $fetch_cur {puts "$num $name"} "" num 1 name 2

* orafetch now accepts Tcl variables for binding:  See the 'sybnext' example
  above.  Tcl variables are bound to result columns for each row returned.

* orabindexec - new command:  Allows Tcl variables to be bound to Oracle :bind
  variables for SQL execution, taking advantage of Oracle's ability to
  pre-parse and cache SQL statements.  Works in conjuction with new 'parseonly'
  option on orasql.  Ex:

        orasql $cur "insert into dept values(:deptno, :dname, :loc)" parseonly
        orabindexec $cur :deptno 98  :dname  ENGINEERING  :loc TUCSON
        orabindexec $cur :deptno 99  :dname  SUPPORT      :loc DENVER

* Asynchronous SQL execution:  Allows sending SQL with immediate return.
  New commands 'orapoll' to check status of SQL; 'orabreak' to interrupt
  SQL execution on server.  New 'async' option for orasql and orabindexec. Ex:

        orasql $cur "select * from emp" async
        puts -nonewline "waiting."
        while {[orapoll $cur] == ""} {
          puts -nonewline "."
        puts "done"


Tom Poindexter