Skip to Content.
Sympa Menu

freetds - Re: [freetds] What's new list in FreeTDS 0.91 and 0.92

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] What's new list in FreeTDS 0.91 and 0.92
  • Date: Wed, 11 May 2011 00:02:06 -0400

On Mon, 9 May 2011 10:17:16 -0400
Raymond R Rankins <rrr03 AT health.state.ny.us> wrote:

> Exporting of DATE columns seems to work fine, but when importing into
> a DATE column, I'm getting the "Msg 20049, Level 4 Data conversion
> resulted in overflow" error.

The upcoming release 0.91 will not support DATE or other types
introduced in SQL Server 2008. Support for these data types will take
some time, probably the rest of this year at least unless someone
contributes a patch.

Reading DATE "works" because the server converts DATE to varchar
(20) for clients using anything less than TDS Version 7.3. A BCP
upload requires the client to send DATE data in its binary 3-byte
format (days since 0001-01-01). Prior to TDS 7.3 no such type was
defined. If sent to a server using, say, TDS 7.2, the server would
probably reject the packet and disconnect the session, even if the
server supports TDS 7.3 and *could* recognize the datatype.

Give Microsoft credit for backwards compatibility. At the same time,
recognize that "protocol versions" are not as flexible as feature
negotiation. To support DATE, we have to implement the whole of TDS
7.3. We can't indicate to the server we'd like 7.2 with DATEs.

To support just DATE, we need inter alia:

1. convert DATE <-> varchar
2. convert DATE <-> DATETIME
3. convert DATE <-> SMALLDATETIME
4. support e.g. db_bind for DATE
5. add DATE to the conversion unit test

I took an initial step today to support a TDS 7.3 login packet. Once
we can log in, the server will start sending and receiving DATE in its
native form, and the work listed above can commence. Before the next
release, all 7.3 datatypes will need to be supported. Frediano is even
headed to MARS. (MARS, though, *is* a negotiable protocol
feature; you can be a 7.3 client with or without MARS support.)

So many features, so little time.

--jkl




Archive powered by MHonArc 2.6.24.

Top of Page