Skip to Content.
Sympa Menu

freetds - FW: [freetds] Some tds_* functions have changed in the last several weeks???

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "Harrison, Bruce (CXO)" <Bruce.Harrison AT hp.com>
  • To: <freetds AT lists.ibiblio.org>
  • Subject: FW: [freetds] Some tds_* functions have changed in the last several weeks???
  • Date: Thu, 12 Dec 2002 09:43:45 -0700

Forwarding to the entire list per James' request...

-----Original Message-----
From: James K. Lowden [mailto:jklowden AT schemamania.org]
Sent: Wednesday, December 11, 2002 10:13 PM
To: Harrison, Bruce (CXO)
Subject: Re: [freetds] Some tds_* functions have changed in the last
several weeks???

On Wed, 11 Dec 2002 14:39:45 -0700, "Harrison, Bruce (CXO)"
<Bruce.Harrison AT hp.com> wrote:
>
> Hello James,
>
> Error 181: "feeder.c", line 421 # Expected 6 argument(s) for "int
> tds_convert(tds_context *,int,const char *,unsigned
> int,int,conv_result *)"; had 7 instead.

(I think that's covered.) :-)

> Please don't mis-understand me on this. I'm very happy to be using
> freetds and am very pleased with the responses to my questions posted
to
> this list! Although I've been coding for many years, I'm still a bit
> new to this "open source" paradigm and was a little surprised when the
> function definitions changed when the version didn't. I have no
problem
> changing my code to match the definitions in the current tds.h and
> tdsconvert.h files.

Hello Bruce,

I don't misunderstand, and I hope I didn't sound abrupt. I know where
you're coming from, because I was there myself not long ago. I'm glad
you're finding FreeTDS useful, and I'm glad for your participation. I
hope we correct a few things as a result of your compliler's messages.
In
short: Welcome to FreeTDS!

Most free software projects have two kinds of code: (1) releases, which
are numbered and are stable, and (2) everything else. IOW, they reflect
the programmer's reality: long periods of broken code punctuated by
brief
moments of working code.

You're working with #2, a snapshot, which is nothing more or less than
what we checked into the source control system the night before ("night"
being 4:00 AM EST). In general, our snapshot is pretty good; we don't
often break existing things, at least not for very long. But it *does*
change, and if you're going to update your snapshot periodically, it's a
good idea to be on the mailing list (done, I know), where you'll get a
whiff of what's going on, and to review the ChangeLog. In general,
though, you'll be OK, because the vendors already specified the public
interfaces, the APIs, and in general all we do is add to what we've
already done. In general.

In particular, though, you're working directly with libtds, which is
seeing some very heavy work and will see more. libtds is not a public
library; it's a utility library. By linking to it directly, you're
tying
your application to FreeTDS's highly changeable internals. That could
be
a bumpy road unless you want to add yourself to the developer's list.
You're much better off relying on db-lib or ct-lib or odbc. Everything
in
libtds is available via those APIs and is documented by the vendors.

I have a feeling the special role of libtds is not made terribly clear
in
our documentation. Usually, people come to FreeTDS looking for an
implementation of one of the published APIs to replace the vendor
libraries, but occasionally someone hooks into libtds hoping for better
performance or something.

I hope that clarifies things without being unduly pedagogical. Brevity
was never my strength.

Regards,

--jkl




Archive powered by MHonArc 2.6.24.

Top of Page