freetds  1.2.12
About: freetds is an open-source implementation of the TDS (Tabular DataStream) database client access protocol and related libraries used by Sybase and Microsoft ("making the leap to SQL Server").
  Fossies Dox: freetds-1.2.12.tar.bz2  ("unofficial" and yet experimental doxygen-generated source code documentation)  

freetds Documentation

Some Fossies usage hints in advance:

  1. To see the Doxygen generated documentation please click on one of the items in the steelblue colored "quick index" bar above or use the side panel at the left which displays a hierarchical tree-like index structure and is adjustable in width.
  2. If you want to search for something by keyword rather than browse for it you can use the client side search facility (using Javascript and DHTML) that provides live searching, i.e. the search results are presented and adapted as you type in the Search input field at the top right.
  3. Doxygen doesn't incorporate all member files but just a definable subset (basically the main project source code files that are written in a supported language). So to search and browse all member files you may visit the Fossies
  4. freetds-1.2.12.tar.bz2 contents page and use the Fossies standard member browsing features (also with source code highlighting and additionally with optional code folding).

README for FreeTDS 1.2

Release date 3 July 2020

To build FreeTDS read the file INSTALL or the FreeTDS Users Guide

FreeTDS is a free implementation of Sybase's DB-Library, CT-Library, and ODBC libraries. FreeTDS builds and runs on every flavor of unix-like systems we've heard of (and some we haven't) as well as Win32 (with or without Cygwin), VMS, and Mac OS X. Failure to build on your system is probably considered a bug. It has C language bindings, and works also with Perl and PHP, among others.

FreeTDS is licensed under the GNU LGPL license. See COPYING_LIB.txt for details.

Other files you might want to peruse:

  • AUTHORS Who's involved
  • BUGS Some things we fixed, or think we did
  • NEWS Summary of feature changes and fixes
  • TODO The roadmap, such as it is

Also, api_status shows which functions are implemented.

For details on what's new in this version, see NEWS. For unbearable detail, see git log.


A User Guide, in xml and html form, is included in this distribution. Also included is a reference manual, generated in HTML with Doxygen. "make install" installs the HTML documentation, by default to /usr/local/share/doc/freetds-.

Note to Users

Submissions of test programs (self-contained programs that demonstrate functionality or problems) are greatly appreciated. They should create any tables needed (since we obviously don't have access to your database) and populate them. Unit tests for any of the libraries is appreciated

Notes to Developers

The code is split into several pieces.

  1. tds directory is the wire level stuff, it should be independent of the library using it, this will allow db-lib, ct-lib, and ODBC to sit on top.

  2. db-lib directory. This is the actual db-lib code which runs on top of tds.

  3. ct-lib directory. This is the ct-lib code which runs on top of tds.

  4. server directory. This will be a set of server routines basically to impersonate a dataserver, functions like send_login_ack() etc...

  5. odbc directory. ODBC implementation over tds. Uses iODBC or unixODBC as a driver manager. You need to have one of those if you are using the ODBC CLI.

  6. unittests directories. Test harness code for ct-lib, db-lib, ODBC and libtds.

  7. samples directories. Sample code for getting started with Perl, PHP, etc...

  8. pool directory. A connection pooling server for TDS. Useful if you have a connection limited license. Needs some hacking to get configured but is quite stable once configured correctly. Contact the list if interested in how to use it.

Please look at doc/getting_started.txt for a description of what is going on in the code.

Side note: Brian, as many free software authors, appreciates postcards from all over. So if you live someplace neat (read: not Michigan) and want to send one, email him ( for his current snail mail address.