Skip to Content.
Sympa Menu

freetds - Re: [freetds] FreeTDS 0.82 no longer has tds.h installed?

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "James K. Lowden" <jklowden AT freetds.org>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] FreeTDS 0.82 no longer has tds.h installed?
  • Date: Sat, 19 Apr 2008 16:12:03 -0400

Dossy Shiobara wrote:
>
> On 2008.04.19, James K. Lowden <jklowden AT freetds.org> wrote:
> > Both FreeTDS and the AOLserver project would be better off if
> > AOLserver used a client library instead.
>
> Has someone verified thread-safety, all the way through the client
> library layer?

Hi Dossy,

I don't know about "verified". db-lib doesn't permit multiple threads to
share a connection, but we assert it's otherwise thread-safe.

> This was, IIRC, the primary reason why I went straight to the tds_*
> functions rather than trying to use db-lib or ct-lib.

db-lib was invented a decade before multithreading. ct-lib should be
threadsafe, period, according to Sybase's specification cf.
http://manuals.sybase.com:80/onlinebooks/group-cn/cng1251e/ctref/@Generic__BookTextView/12662;pt=13641#X.


That said, ct-lib, although it supports DBD::Sybase and sqsh acceptably,
is the weak sister nowadays, with no one actively adding to it. Your
involvement could change that, which is what I meant by both projects
benefitting. Instead of maintaining something special to AOLserver, you'd
be maintaining a generalized, well defined interface.

> I don't see how to set the TDS
> protocol version any more. Previously, it was easy as invoking
> tds_set_version(). Is this done through dbsetlversion()?

Ouch! tds_set_version still works. dbsetlversion is how db-lib Microsoft
specifies the same idea in db-lib. FreeTDS implements it as defined by
Microsoft, but it could be generalized.

We should probably invent "dbsettdsversion()" as the inverse of dbtds().

> Does db-lib or ct-lib offer millisecond-granularity timeouts? Or, is it
> in whole seconds?

No, but we could discuss ways to make that possible.

I'm a little surprised this is a requirement, insofar as database drivers
generally can't be depended on for that kind of granularity. ODBC
SQL_ATTR_CONNECTION_TIMEOUT is specified in seconds. Timeout handling was
quite broken in FreeTDS prior to 0.82.

> I guess nsfreetds operates like just another "client library" for
> AOLserver application code. Perhaps I'll look and see what it will take
> to build libtds again in 0.82. Thanks for the idea.

Always happy to help another free software project!

I think you'll find that the static library libtds.a is built. You
probably just need to copy the headers and the library to your standard
tree and re-link.
Regards,

--jkl




Archive powered by MHonArc 2.6.24.

Top of Page