[freetds] Choosing right FreeTDS API

Frediano Ziglio freddy77 at gmail.com
Thu Nov 22 01:31:52 EST 2007


Il giorno gio, 22/11/2007 alle 00.19 +0530, Sharan Rao ha scritto:
> Hi,
> 
>  We ( Kexi - http://www.kexi-project.org ) were looking at implementing 
> drivers to connect to MS SQL servers. We have our own C++ abstraction layer 
> for implementing drivers ( current support for MySQL, Postgres to name a 
> few ), with support for cursors in our abstraction. We were looking at db-lib 
> but we don't really need cursor support at that level. 
>  So we were thinking whether we should instead use the lower level libtds api. 
> Our requirement is to also have support for the newest mssql and sybase 
> versions, and access to their new features would be a bonus.
> 
> We needed suggestion as to which API we should use.
> 
> Cheers!
>  Sharan Rao

Hi,
 there are mainly 4 APIs... libTDS (core library), dblib, ctlib and
ODBC. libTDS is an unstable library (we decided to not even compile it
as a shared object!) so it's subject to change as needed. Ctlib works
but IMO is not so supported as dblib and ODBC. So I would choose between
dblib and ODBC. These libraries use all libTDS which speaks directly to
the server so if a library use a set of libTDS functions (like cursors
for instance) libTDS will use appropriate db features. So the question
is not about server features but about client (Kexi) ones. Which feature
exacly you expect from our library? Prepared statements, RPCs,
scrollable/updatable cursors, bulk copy? Which kind of informations you
need? Identity columns, updatable, types and so on?
dblib it's a bit ligther than ODBC but I can say for sure that our ODBC
driver supports all your needs (well.. if you don't need bulk copy).
Also ODBC can works with many servers, all server which have an ODBC
driver that supports the features you need! Well.. I mainly develop ODBC
driver so these are not so fair...

Frediano




More information about the FreeTDS mailing list