freetds AT lists.ibiblio.org
Subject: FreeTDS Development Group
List archive
FreeTDS 0.53, DBD-Sybase-0.94-dbi, Solaris, and Windows 2000
- From: "Dan Shnowske" <coke12oz AT hotmail.com>
- To: freetds AT franklin.oit.unc.edu
- Subject: FreeTDS 0.53, DBD-Sybase-0.94-dbi, Solaris, and Windows 2000
- Date: Wed, 5 Jun 2002 14:16:15 -0400
Sorry to bother anyone with this posting, but I've been hitting my head
against the wall for days on this and figured I'd save someone the work
later if they run into the same problem...and...if someone could please
tell me if what I changed was "not good", or there's a better way, that
would be nice too.
I compiled tds-0.53 on Solaris (Sparc) 2.6 and DBD-Sybase-0.94, connecting
to MS-SQL 2000, using tds protocol 4.2 (7.0 never worked)..
Anyway, all worked properly, except DBI:errstr was never being filled (for
example when running a query that failed). I finally researched enough to
find out that this was due to a byte-swapping issue in tds 0.53 on return
codes on big endian systems.
After much poking of the code, I found and made a small change to
src/tds/token.c (tds_process_msg() function):
..
rc = tds_get_int(tds)
#ifdef WORDS_BIGENDIAN
/* tds_swap_bytes(&rc, 4); -- already swapped in tds_get_int? */
#endif
Once I commented out this line, everything seemed to work wonderfully.
Was this correct? I tried using the CVS snapshot (as I heard it was fixed
in there already) and I ran into other issues there.
Have a good day.
Dan Shnowske
- FreeTDS 0.53, DBD-Sybase-0.94-dbi, Solaris, and Windows 2000, Dan Shnowske, 06/05/2002
Archive powered by MHonArc 2.6.24.