Sybtcl-2.5b1 and Oratcl-2.5b1 are now available for download and testing.
You can find the packages at:
http://www.neosoft.com/tcl/ftparchive/sorted/databases/sybtcl-2.5b1
http://www.neosoft.com/tcl/ftparchive/sorted/databases/oratcl-2.5b1
or
ftp://ftp.neosoft.com/pub/tcl/sorted/databases/sybtcl-2.5b1
ftp://ftp.neosoft.com/pub/tcl/sorted/databases/oratcl-2.5b1
(if you grabbed Oratcl before this announcement was posted, be aware I uploaded
an earlier version by mistake. go back and get the current 2.5b1 package.)
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.
Note that these are beta 1 releases. That means I've made changes and done
some testing. Now it is up to you to help me flush out any problems/bugs.
I don't recommend that you use beta releases for production code, but I do
need your help in testing.
Summary of changes:
Sybtcl-
* 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;
end;
} :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"
Things to be done before final 2.5 releases:
*more testing, test DLLs under Windows95
*update wisqlite & wosql to use standard dialog, file selects; port to windows
*include Mac makefile & libs.
After these 2.5 releases are stable, I plan to begin work on supporting
Tcl 8.0 interfaces and objects.
Enjoy!
--
Tom Poindexter
http://www.nyx.net/~tpoindex/