Re: FreeTDS with Wine Issue

"James K. Lowden" <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
Chad Sikorra wrote:
> 
> Suggestions:
> >
> > 1.  Upgrade.

> Suggestion number one did the trick!

Yay!  

> I had to do ' ./configure
> --with-unixodbc=/usr ' to get it to build correctly. It was a pain, but
> a nice learning experience I guess :)

That might be because of the odbc_config you found.  Here's confgure.ac:

AC_CHECK_PROG(ODBC_CONFIG,odbc_config,odbc_config)

	That searches your PATH for odbc_config.  

If it's not found, configure searches your systems's header files --
locations defined how?  Probably by letting the compiler do the checking
-- for isql.h or sql.h.  We're using AC_HEADER_CHECKS in autoconf.  

Whether or not it finds it, the location can be overridden later by one of
the --with options: 

AC_ARG_WITH(unixodbc,
AS_HELP_STRING([--with-unixodbc=DIR], [build odbc driver against unixODBC
in DIR]))
if test "$with_unixodbc"; then
	if echo "$with_unixodbc" | grep -v '^/'; then
		with_unixodbc="$PWD/$with_unixodbc"
	fi
	CPPFLAGS="$CPPFLAGS -DUNIXODBC"
	if test -f "$with_unixodbc/bin/odbc_config"; then
		ODBC_CONFIG="$with_unixodbc/bin/odbc_config"
		ODBC_INC=`$ODBC_CONFIG --include-prefix`
		LDFLAGS="$LDFLAGS -L`$ODBC_CONFIG --lib-prefix`"
	else
		# if not available do not use system default
		ODBC_CONFIG=""
		ODBC_INC="$with_unixodbc/include"
		LDFLAGS="$LDFLAGS -L$with_unixodbc/lib"
	fi
	test -r "$ODBC_INC/sql.h" || AC_ERROR([sql.h not found])
	test -r "$ODBC_INC/sqlext.h" || AC_ERROR([sqlext.h not found])
	ODBC_INC="-I$ODBC_INC"
	ODBCLIB="-lodbc"
	odbc=true
	unixodbc=true
fi

IOW, you don't need odbc-config.  The configure script runs odbc-config,
if it finds it, to generate the INCLUDE string (in $ODBC_INC).  If it
doesn't find it, it looks around for header files.  Regardless,
--with-unixodbc overrides whatever it happens to find.  BUT: if you
specify --with-unixodbc=DIR *and* there's a DIR/bin/odbc_config, it runs
that to set the INCLUDE path.  (whew!)

Mine does this:

$ /usr/local/bin/odbc_config --include-prefix
/usr/local/include

>From what you said, I would expect one of two things:

1.  You (now) have /usr/bin/odbc-config which, when run with
--include-prefix, produces '/usr'.  But your gcc doesn't by default look
in /usr/include.  

	or 

2.  odbc-config is elsewhere on your path and produces something other
than '/usr', forcing you to override its output using --with-unixodbc.  

There are other possibilities, too, but they're not likely.  I'd bet on
#2. 

> Also, I still received the same error message if I had the TDSVER set to
> 4.2. Setting the version to 8.0 cleared the issue up

Might be a protocol limitation.  

> Thanks again for the suggestion. That's another application I can cross
> off my list of reasons for still booting into my Windows XP virtual
> machine.

A happy camper, good news on a Saturday morning!  

--jkl
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.