[freetds] Using freetds in Windows

James K. Lowden jklowden at freetds.org
Mon Jan 11 22:14:28 EST 2010


Frediano Ziglio wrote:
> Perhaps would be better to translate C
> errors into Windows system errors and use FormatMessage for windows and
> strerror for Unix?

Winsock errors cannot be formatted with FormatMessage.  That's why we have
tds_prwsaerror().  

> we always use strerror, windows or not. 

It matters more to you than to me.  :-)  

In the db-lib code we don't need to support multithreading.  I don't know
how to use errno portably in multithreaded code.  I would like to believe
that in any environment in which errno is in thread-local storage,
strerror(3) would be thread-safe.  

I encountered a bug today in replacements/strtok_r().  It doesn't treat
consecutive tokens as one, so at the end of the port 1434 response (two
semicolons), it returns a zero-length string instead of NULL.  It made me
wish we'd single-threaded the code instead of replacing it with something
that almost works.  

> I think that a developer
> have to use perl even on windows or manually copy file from distribution
> while users will use distribution which came with proper file.

Agreed. 

> Why not adding .sln/.vcproj and Nmakefile to distribution ??

Laziness.  Good idea, though.  

> It's that macro is defined in replacements.h and tds_sysdep_private.h so
> I got a warning about redefinition. I build defncopy as cross compile
> using FreeTDS library (not MS one). 

Understood.  It's good you use Mingw and I use VS 2005.  If we get it to
compile both ways, we're doing something right.  

Regards, 

--jkl




More information about the FreeTDS mailing list