Skip to Content.
Sympa Menu

freetds - Re: [freetds] Column types reported from SQL Server 1008

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "James K. Lowden" <jklowden AT freetds.org>
  • To: freetds AT lists.ibiblio.org
  • Subject: Re: [freetds] Column types reported from SQL Server 1008
  • Date: Sat, 19 Nov 2011 11:34:54 -0500

On Fri, 18 Nov 2011 12:58:14 +0300
Steve Teale <steve.teale AT britseyeview.com> wrote:
> I have 2 columns that the SMS shows as bigint, a time(7) column, and a
> date column among others.
...
> The type for the bigint columns comes back as 8 (SQL_DOUBLE), and
the
> type name correspondingly as 'float'. The time and date columns are
> reported as 12 (SQL_VARCHAR) and 'varchar'.
...
> My freetds.conf file has the protocol version as 8.0.
>
> What am I missing?

You're missing support for TDS version 7.3.

The TDS client you're using cannot decode the binary format of bigint,
date, and time types. These types first appeared on SQL Server 2008,
which brought us TDS 7.3.

The client announces the TDS version it uses in the login packet. The
server knows which datatypes are defined for each protocol version.
It converts datatypes not defined in a given version to something
defined i.e., something the client will recognize and be able to
decode.

The version of FreeTDS you're using logs in as TDS 7.2, for which
BIGINT is undefined. The server returns it as FLOAT. IEEE 754 defined
double-precision floating point as 52 bits of precision, which, while
not 64 bits, is certainly better than the 32 bits in an INT. After
2^52 you get approximations. Perhaps before then you'll get TDS 7.3.

Work toward support for TDS 7.3 in FreeTDS is ongoing and has been
discussed before on this list in the last few months. No promises
when it will be ready, not even guesses. There's always room for more
hands.

--jkl






Archive powered by MHonArc 2.6.24.

Top of Page