Skip to Content.
Sympa Menu

freetds - FreeTDS 0.53, DBD-Sybase-0.94-dbi, Solaris, and Windows 2000

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • 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.

Top of Page