[freetds] TDS versions

James K. Lowden jklowden at freetds.org
Wed May 28 10:13:16 EDT 2008

Emil Wojak wrote:
> So who's right?
> On the other hand, the documentation from Microsoft applies slightly
> different version numbering:
> http://msdn.microsoft.com/en-us/library/cc448452.aspx - 1.3 Protocol
> Overview (Synopsis)
> 7.0 - SQL Server 7.0
> 7.1 - SQL Server 2000
> 7.2 - SQL Server 2005
> Moreover, this numbering corresponds to what is sent in the LOGIN7
> message, according to
> http://msdn.microsoft.com/en-us/library/cc448566.aspx LOGIN7
> The following lists the version numbers used by clients up to SQL Server
> 2005.
> 7.0: 0x70 00 00 00 (SQL Server 7.0)
> 7.1: 0x71 00 00 00 (SQL Server 2000)
> 7.1 SP1: 0x71 00 00 01 (SQL Server 2000 SP1)
> 7.2: 0x72 09 00 02 (SQL Server2005)
> I understand that the actual numbering was introduced before Microsoft
> published the documentation. So maybe FreeTDS should update its TDS
> numbering scheme?

Quite so.  Now that Microsoft has publicly committed to this numbering
scheme, it would be well for us to follow suit.  Let me explain how we got

Until about a month ago, you could find scant documentation of TDS on
microsoft.com.  Now, slowly, word is getting out.  ;-)  

The FreeTDS project needed to differentiate among implementations.  I
don't remember how "7.0" got its number, but as mutations appeared since
then, we just assigned the next available integer.  We figured it would be
awhile before we ran out of numbers.  

I did once come across a reference in a Microsoft document to TDS "7.1",
and proposed changing our scheme to match.  But the counterargument, to
the extent there was one (and that anyone cared), was that SQL Server 2005
is also known as "(8.0)" on Microsoft's site....  

Then the EC, um, encouraged Microsoft to publish its protocols, and we
have a pretty good description of the packets.  (In case anyone there is
reading this, I'd like to mention the published specification is silent on
the subject of the undocumented stored procedures used by the ODBC driver
to support parameterized queries.)  

There's a fair amount of work to change all the reference: preprocessor
macros, config file parser, constants, and documentation.  Definitely we
should change it before FreeTDS 1.0, and the sooner the better.  Patches

BTW, I found this interesting: 


Don't believe everything you read, though.  


More information about the FreeTDS mailing list