Skip to Content.
Sympa Menu

freetds - Starting to use FreeTDS

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "Magnus Ahl" <Magnus.Ahl AT infogate.se>
  • To: <freetds AT franklin.oit.unc.edu>
  • Subject: Starting to use FreeTDS
  • Date: Wed, 11 Sep 2002 19:32:15 +0200



Hello!

Our company is about to embrace the use of FreeTDS in our software, mainly
for communication with Microsoft SQL Server 2000. We use C++ as a coding
standard for our CGI applications and up till today we have only used a
MySQL database. Our intentions is to replace our own MySQL.cc base class
with a wrapper which in turn decides if to use the MySQL or TDS library in
runtime.

We have evaluated FreeTDS earlier in production but it was not until
recently that we deemed the library stable enough to use in our product.
Kudos to all developers, the release of version 0.60 really looks promising!

Currently I have only one beef: Which API shall we use for programming? We
are experienced in using libmysql and have based our earlier products around
its close-to-the-network routines. This gave us confidence enough to use
libtds directly in our programs, but also made us weary when we found some
quirks in the 0.53 release *)

The lack of documentation in the lower-level routines is also a small
problem for us. The source code and the doc/getting_started.txt text file
got us on the road, and enabled us to connect, log in, do a query and close
a connection to the database. But now is the time for all them questions
start to pop up. Are we aiming "to low" and should we try the ctlib or dtlib
instead?


ANY help on our questions and any arguments for choosing one library/API
over the other are more than welcome.





*) Namely (in no particular order):

1. Using a test class in C++, creating 3 instances of SQL objects, setting
tdsdump_open("filename") in all three instances, deleting one class and then
deleting the next one crashes libtds when it tries to fflush() a closed
file.

2. The Windows library REALLY needed some tweaking, to even compile,
according to my colleague. This is one area where we think we can contribute
mostly to the development of FreeTDS.

3. When doing an INSERT after doing one or more SELECT:s in instanced C++
objects, the database doesn't receive the update. If you use the command
line tool or write the same SQL query in a single-instance C++ program, the
INSERT query gets through to the database?

4. Is there really no way of getting the affected rows from the server
before traversing the results? Right now we are doing the same query two
times to mimic the get_affected_rows() library call that exists in MySQL.
All structures I have traced trough (TDSSOCKET->rows_affected and
TDSRESULTINFO->row_count for example) always returns "1" or "0".



Regards,

Infogate AB Magnus.Ahl AT infogate.se
Storgatan 29 tel: 035-171970
Box 345 mobil: 702-118265
301 08 Halmstad www.infogate.se





Archive powered by MHonArc 2.6.24.

Top of Page