Microsoft SQL and Solaris with PERL interface

Brian Bruns camber at
Thu Dec 2 18:52:52 EST 1999

On Thu, 2 Dec 1999, Michael Peppler wrote:

> clifford thurber writes:
>  >    ***  From dbi-users - To unsubscribe, see the end of this message.  ***
>  >    *** DBI Home Page - ***
>  > 
>  > Hello,
>  > I was reading the FAQ on at and came upon a
>  > configuration question with somehting 
>  > than confused me : Where or in which file should this be done? 
>  >  
>  > "rename dbopen() to tdsdbopen() as a work around for dbm name conflict"
There is now a configure option '--enable--dbmfix' which does this.

> Irrelevant on Solaris, unless you have Berkeley DB installed. In any
> case this does not apply to Client Library, which DBD::Sybase uses.
>  > 
>  > 
>  > 2.2 Do I need to configure anything? 
> In the 0.47 release you need to set the tds version to 4.2 or 7 if you 
> want to talk to an MS-SQL server. The version that is in the CVS
> repository autodetects the protocol version when it connects to the
> server (or at least that's my understanding).
Almost.  I should have been a bit clearer I guess.  I'm not sure if there
is a way we can autodetect 4.2/5.0/7.0 easily anyway.  The current
behaviour is this:

1. if dbsetversion() or ct_con_props(...,CS_TDS_VERSION,...) has been
called use that.
2. look for a TDSVER environment variable, if set then use that.
3. else use the compile time default.

Note that Sybase OC tries to send a 5.0 login packet to a server which is
mostly a superset of 4.2, but as seen with the initial MS SQL 7.0 server
this can be problematic if MS has a bug! So to play it safe I'd like to
keep the autodetection off if it has the potential to fail. 

Since the server does not respond upon connect, but only after the login
packet has been sent, real autodetection is not really practical.  One
option I've been tossing around is to use one of the fields in the
interfaces file to denote which version to default to.  But which one?
the service name (query/master) is used. The protocol field (tcp) is used
by Sybase and I'd like to keep compatibility, and besides we may need to
use it for tcpip v6 (tcp6?), the physical layer (ether) is mostly comment
I believe, any one know if Sybase uses this or is it fair game? adn the
last two fields being ip and port are definately off limits. Also I'm
afraid that just adding a field my break openclient.


More information about the FreeTDS mailing list