I still prefer my re-write (simplier, cleaner, and somewhat more
functional), but there is probably no likelyhood of my version being
ported to work under MS-Windows anytime soon (if ever).
--
Robert Heller -- 978-544-6933
Deepwoods Software -- Linux Installation and Administration
http://www.deepsoft.com/ -- Web Hosting, with CGI and Database
hel...@deepsoft.com -- Contract Programming: C/C++, Tcl/Tk
Does your version support unicode?
It uses the TclObj API (and does NOT use the older string-based Tcl
interface at all). I don't do anything specific for unicode, but
my understanding is that TclObj supports unicode. I followed MS's docs
for the ODBC API and Unicode was not mentioned, so I did not do anything
to specificly deal with unicode. The source code is available and is
plain C -- you are welcome to have a look and patch things if needed.
>
> I managed to get the SourceForge version (rnurmi / hobbs) of tclodbc to
> compile and actually work under CentOS 4.4. I posted a message to the
> Open Discussion forum about it.
>
> I still prefer my re-write (simpler, cleaner, and somewhat more
> functional), but there is probably no likelyhood of my version being
> ported to work under MS-Windows anytime soon (if ever).
>
OK, After using it for awhile in an application I am working on, I am
finding *serious* bugs, that I cannot figure out. This is with the CVS
code (2.5?). It seems that the whole error handling / exception
processing in broken, at lease with the CVS version of tclodbc with gcc
3.4.6 under CentOS. Exceptions are either not caught and/or pointers
are trashed (causing segfaults and/or errors from glibc's free()).
Almost any SQL error will cause one or another of these errors. The
sourceforge (Roy Nurmi / Jeff Hobbs) version of tclodbc is pretty much
not usable under UNIX/Linux. The old tar file (tclodbc-unix 2.2.1)
does not build under a modern version of Linux (it is missing important
files). The various RPMs contain a non-functional shared libraries
(there have been library changes in the unixODBC RPMS and the unix port
of tclodbc has not kept up). While there have been claims that this
package is 'mature' and not in need of maintenance, this is not really
the case, at least from a Linux/UNIX perspective with *modern* Linux
distributions (ie RHEL 4 / CentOS 4.4). I guess things might have been
working fine with RH 8, but RH 8 is seriously old (and long past EOL).
Is anyone (who really knows what is going on with this code) actually
working on it? *I* don't really understand the code and the code
*appears to me* to be excessively / unnecessarily complex and overloaded
with C++ features that are not really needed. I have written a far
simpler (and actually more functional in many ways) version in plain C
using SWIG. I am going to convert my application to use this version,
at least for my Linux/UNIX version of my application. This *probably*
means that my application at present won't be portable to MS-Windows,
since I am not sure I can cross-build my TclODBC extension to actually
work on MS-Windows (I don't have a MS-Windows machine to do any sort of
tests on).
The sourceforge.net project for tclodbc has not been touched in by
anyone (but me) in months.
As has been mentioned before, you may want to check out
http://wiki.tcl.tk/snodbc -- it is being actively developed. The downside
is that it requires Tcl 8.5.
--
+--------------------------------+---------------------------------------+
| Gerald W. Lester |
|"The man who fights for his ideals is the man who is alive." - Cervantes|
+------------------------------------------------------------------------+
Sorry, there appears to be a 8.4 version as well form the comments.
> I still prefer my re-write (simplier, cleaner, and somewhat more
> functional), but there is probably no likelyhood of my version being
> ported to work under MS-Windows anytime soon (if ever).
>
Why do you say that? Whatever the case, I think there is plenty of
room (and need, I might add) for a Tcl ODBC driver on Linux. At a
minimum, yours might co-exist with the existing Windows-based one.
I am using tclodbc on Windows and it works great. But I too have
found tclodbc under linux difficult to work with, and have essentially
given up on it because of the same concerns you mention. It is simply
difficult to get it to compile and then build so you can take it from
one Linux box to another.
I really wish ActiveState would take a strong look at this (and
perhaps price it separately if needed). An ODBC driver is the
cornerstone of many enterprise applications.
> --
> Robert Heller -- 978-544-6933
> Deepwoods Software -- Linux Installation and Administrationhttp://www.deepsoft.com/ -- Web Hosting, with CGI and Database
Use JDBC with TclBlend. Guaranteed cross platform compatibility and
interoperability with Hibernate. See www.patrickfinnegan.com.