[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freetds
Subject:    [freetds] Re: unixODBC woes, more details
From:       Peter Harvey <pharvey () codebydesign ! com>
Date:       2002-09-06 6:01:46
[Download RAW message or body]

I am confused because it appears that you are using iODBC not unixODBC. 
And if you have both on your system than you are inviting trouble.

For example; you should only have one libodbc.so on your system and you 
should only have one odbcinst.ini. Further more you do not want to end 
up with a mix of iODBC and unixODBC libs. You certianly do not want 
'find / -name "*iodbc*"' on your system if you plan on using unixODBC - 
unless you *really* know what you are doing :)

Your ini files are clearly from an iODBC install and since you have 
indicated a problem with unixODBC I have to assume that your environment 
is suspect.

A while ago I enhanced the DSN lookup code in the FreeTDS ODBC driver. I 
am very busy working on another project right now BUT please let me know 
if I should revisit this code - I feel somewhat obligated as I put a 
good chunk of code right in that area.

Peter


Leon Brooks wrote:

>Attached (and I'll post again inline if the list server balks) are an 
>obfuscated odbc.ini, odbcinst.ini and freetds.conf to check for gaffes. The 
>initials of the organisation have been replaced with XXX and the 3rd quad of 
>the internal addresses has been replaced with ??? to aid security.
>
>192.168.???.130 is the main SQL server, 192.168.???.67 is a temporary test 
>server. Both are MS SQL Server 7.0.
>
>sqsh will connect to either server via FreeTDS, unixODBC will connect through 
>the EasySoft bridge but not FreeTDS.
>
>unixODBC isql can't find any DSNs at all.
>
>The base system is Mandrake 8.1 unixODBC is 2.2.2, FreeTDS is 0.53.
>
>Enlighten me! (-:
>
>  
>
>------------------------------------------------------------------------
>
>#
># The freetds.conf file is a replacement for the original interfaces
># file developed by Sybase.  You may use either this or the interfaces
># file, but not both.
>#
># FreeTDS will search for a conf file in the following order:
>#
>#     1) check if a file was set programatically via dbsetifile() and
>#        is in .conf format, if so use that,
>#
>#     2) look in ~/.freetds.conf
>#
>#     3) look in @sysconfdir@/freetds.conf
>#
># If FreeTDS has found no suitable conf file it will then search for
># an an interfaces file in the following order:
>#
>#     1) check if a file was set programatically via dbsetifile() and 
>#        is in interfaces format, if so use that,
>#
>#     2) look in ~/.interfaces
>#
>#     3) look in $SYBASE/interfaces (where $SYBASE is an environment
>#        variable)
>#
># Only hostname, port number, and protocol version can be specified
># using the interfaces format.
>#
># The conf file format follows a modified Samba style layout.  There
># is a [global] section which will affect all database servers and
># basic program behaviour, and a section headed with the database
># server's name which will have settings which override the global
># ones.
>#
>
># Global settings, any value here may be overridden by a database
># server specific section
>[global]
>        # TDS protocol version
>	tds version = 7.0
>
>	initial block size = 512
>
>	swap broken dates = no
>
>	swap broken money = no
>
>	# Database server login method, if both server and domain
>	# logins are enabled, domain login is tried first if a domain
>	# is specified, and if that fails the server login will be used.
>	try server login = yes
>	try domain login = no
>
>	# The default authentication domain, can be overridden by
>	# specifying a username with a domain prefix, e.g. DOMAIN\username
>;	nt domain = WORKGROUP
>
>	# If the server responds with different domain try that one?
>	cross domain login = no
>
>	# Whether to write a TDSDUMP file for diagnostic purposes
>	# (setting this to /tmp is insecure on a multi-user system)
>	dump file = /tmp/freetds.log
>	debug level = 10
>
>	# Command and connection timeouts
>;	timeout = 10;
>;	connect timeout = 10;
>	
># This is a Sybase hosted database server, if you are directly on the
># net you can use it to test.
>;[JDBC]
>;	host = 192.138.151.39
>;	port = 4444
>;	tds version = 5.0
>
>[TDSdev2]
>	host = 192.168.???.67
>	port = 1433
>	tds version = 7.0
>
># A typical Microsoft SQL Server 7.0 configuration	
>;[MyServer70]
>;	host = ntmachine.domain.com
>;	port = 1433
>;	tds version = 7.0
>
># A typical Microsoft SQL Server 7.0 configuration using domain logins
>;[MyServer70]
>;	host = ntmachine.domain.com
>;	port = 1433
>;	tds version = 7.0
>;	try domain logins = yes
>;	try server logins = no
>;	nt domain = MYDOMAIN
>
># A typical Microsoft SQL Server 6.x configuration	
>;[MyServer65]
>;	host = ntmachine.domain.com
>;	port = 1433
>;	tds version = 4.2
>
>  
>
>------------------------------------------------------------------------
>
>;
>;  odbc.ini
>;
>;  ODBC DSN configuration file
>;
>;  This file is an OpenLink Software product configuration file.
>;  To learn more about this product, or any other product in our
>;  portfolio, please check out our web site at:
>;
>;      http://www.openlinksw.com
>;
>;  or contact us at:
>;
>;      general.information@openlinksw.com
>;
>;  If you have any technical questions, please contact our support
>;  staff at:
>;
>;      technical.support@openlinksw.com
>;
>[ODBC Data Sources]
>XXXBTEST = OpenLink SQL Server Lite Driver
>XXXtest  = Leon testing again
>OpenLink = OpenLink (MT)
>XXX2     = SQL Server
>TDSdev2  = Developer2 pubs via FreeTDS
>TDSxxxt  = CIXXXB XXXTEST via FreeTDS
>Doomed   = Just another random test
>Default  = this sucks
>DEFAULT  = this really sucks
>
>[TDSdev2x]
>Driver          = TDS
>Description     = Developer2 pubs via FreeTDS 1
>Host            = 192.168.???.67
>ServerName      = 192.168.???.67
>ServerType      = SQLServer 7
>FetchBufferSize = 99
>UserName        = sa
>UID             = sa
>Password        = 7board
>PWD             = 7board
>Database        = pubs
>ReadOnly        = no
>Trace           = 1
>TraceFile       = /tmp/iodbc.trace
>
>[TDSdev2]
>Driver          = /usr/lib/libtdsodbc.so
>Description     = Developer2 pubs via FreeTDS 1
>Host            = 192.168.???.67
>ServerName      = 192.168.???.67
>ServerType      = SQLServer 7
>FetchBufferSize = 99
>UserName        = sa
>UID             = sa
>Password        = 7board
>PWD             = 7board
>Database        = pubs
>ReadOnly        = no
>Trace           = 1
>TraceFile       = /tmp/iodbc.trace
>
>[Doomed]
>Driver          = /home/xxxstaff/ODBCbridge/lib/sql_st_lt.so
>Description     = Test DB Devel2
>Host            = 192.168.???.67
>ServerType      = SQLServer 7
>FetchBufferSize = 99
>UserName        = sa
>Password        = 7board
>Database        = pubs
>ReadOnly        = no
>Trace           = 1
>TraceFile       = /tmp/iodbc.trace
>
>[TDSxxxt]
>Description     = CIXXXB XXXTEST via FreeTDS
>Options         = CIXXXB
>UserName        = shaunp
>ServerType      = SQLServer 7
>Driver          = /usr/lib/libtdsodbc.so
>Database        = XXXBTEST
>FetchBufferSize = 99
>Host            = 192.168.???.130
>Password        = melange
>
>[XXXBTEST]
>Description     = CIXXXB XXXBTEST via ODBCbridge
>Options         = CIXXXB
>UserName        = shaunp
>ServerType      = SQLServer 7
>Driver          = /home/xxxstaff/ODBCbridge/lib/sql_st_lt.so
>Database        = XXXBTEST
>FetchBufferSize = 99
>Host            = 192.168.???.130
>Password        = melange
>
>[XXX2]
>Driver      = /home/xxxstaff/ODBCbridge/lib/sql_st_lt.so
>Description = bleah
>
>[OpenLink]
>Driver          = /home/openlink/lib/oplodbc.so.1
>Description     = Sample OpenLink MT DSN
>Host            = localhost
>ServerType      = Oracle 8
>FetchBufferSize = 99
>UserName        = 
>Password        = 
>Database        = 
>ServerOptions   = 
>ConnectOptions  = 
>Options         = 
>ReadOnly        = no
>
>[XXXtest]
>Driver          = /usr/local/iodbc/lib/oplodbc.so.1
>Description     = XXX test DB
>Host            = 192.168.23.130
>ServerType      = SQLServer 7
>FetchBufferSize = 99
>UserName        = sa
>Password        = 7board
>Database        = XXXTEST
>ReadOnly        = no
>Trace           = 1
>TraceFile       = /tmp/iodbc.trace
>
>[Default]
>Driver          = /home/xxxstaff/ODBCbridge/lib/sql_st_lt.so
>Description     = Test DB Devel2
>Host            = 192.168.???.67
>ServerType      = SQLServer 7
>FetchBufferSize = 99
>UserName        = sa
>Password        = 7board
>Database        = pubs
>ReadOnly        = no
>Trace           = 1
>TraceFile       = /tmp/iodbc.trace
>
>[DEFAULT]
>Driver          = /home/xxxstaff/ODBCbridge/lib/sql_st_lt.so
>Description     = Test DB Devel2
>Host            = 192.168.???.67
>ServerType      = SQLServer 7
>FetchBufferSize = 99
>UserName        = sa
>Password        = 7board
>Database        = pubs
>ReadOnly        = no
>Trace           = 1
>TraceFile       = /tmp/iodbc.trace
>
>[ODBC]
>DebugFile = /tmp/odbc.debug
>
>  
>
>------------------------------------------------------------------------
>
>[ODBC Drivers]
>OpenLink (MT)	= Installed
>TDS             = Installed
>PostgresSQL     = Installed
>
>[OpenLink (MT)]
>Description     = USD4000
>Driver		= /usr/lib/liboplodbcS.so.1
>Setup		= /usr/lib/liboplodbcS.so.1
>
>[TDS]
>Description	= TDS v0.53 with protocol v7.0
>Driver		= /usr/lib/libtdsodbc.so
>Driver		= /usr/lib/libtdsodbcS.so
>FileUsage	= 1
>
>[PostgresSQL]
>Description     = PostgresSQL
>Driver          = /usr/lib/libodbcpsql.so
>Setup           = /usr/lib/libodbcpsqlS.so
>FileUsage       = 1
>
>
>
>  
>
>------------------------------------------------------------------------
>
>---
>You are currently subscribed to freetds as: [pharvey@codebydesign.com]
>To unsubscribe, forward this message to leave-freetds-113879Q@franklin.oit.unc.edu
>  
>



---
You are currently subscribed to freetds as: [freetds@progressive-comp.com]
To unsubscribe, forward this message to leave-freetds-113879Q@franklin.oit.unc.edu

[Attachment #3 (text/html)]

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title></title>
</head>
<body>
I am confused because it appears that you are using iODBC not unixODBC. And
if you have both on your system than you are inviting trouble.<br>
<br>
For example; you should only have one libodbc.so on your system and you should
only have one odbcinst.ini. Further more you do not want to end up with a
mix of iODBC and unixODBC libs. You certianly do not want 'find / -name "*iodbc*"'
on your system if you plan on using unixODBC - unless you *really* know what
you are doing :)<br>
<br>
Your ini files are clearly from an iODBC install and since you have indicated
a problem with unixODBC I have to assume that your environment is suspect.<br>
<br>
A while ago I enhanced the DSN lookup code in the FreeTDS ODBC driver. I
am very busy working on another project right now BUT please let me know
if I should revisit this code - I feel somewhat obligated as I put a good
chunk of code right in that area.<br>
<br>
Peter<br>
<br>
<br>
Leon Brooks wrote:<br>
<blockquote type="cite"
 cite="midLISTMANAGER-144875-82570-2002.09.06-00.59.18--pharvey%23codebydesign.com@franklin.oit.unc.edu">
  <pre wrap="">Attached (and I'll post again inline if the list server balks) are an 
obfuscated odbc.ini, odbcinst.ini and freetds.conf to check for gaffes. The 
initials of the organisation have been replaced with XXX and the 3rd quad of 
the internal addresses has been replaced with ??? to aid security.

192.168.???.130 is the main SQL server, 192.168.???.67 is a temporary test 
server. Both are MS SQL Server 7.0.

sqsh will connect to either server via FreeTDS, unixODBC will connect through 
the EasySoft bridge but not FreeTDS.

unixODBC isql can't find any DSNs at all.

The base system is Mandrake 8.1 unixODBC is 2.2.2, FreeTDS is 0.53.

Enlighten me! (-:

  </pre>
  <pre wrap="">
<hr width="90%" size="4">
#
# The freetds.conf file is a replacement for the original interfaces
# file developed by Sybase.  You may use either this or the interfaces
# file, but not both.
#
# FreeTDS will search for a conf file in the following order:
#
#     1) check if a file was set programatically via dbsetifile() and
#        is in .conf format, if so use that,
#
#     2) look in ~/.freetds.conf
#
#     3) look in @sysconfdir@/freetds.conf
#
# If FreeTDS has found no suitable conf file it will then search for
# an an interfaces file in the following order:
#
#     1) check if a file was set programatically via dbsetifile() and 
#        is in interfaces format, if so use that,
#
#     2) look in ~/.interfaces
#
#     3) look in $SYBASE/interfaces (where $SYBASE is an environment
#        variable)
#
# Only hostname, port number, and protocol version can be specified
# using the interfaces format.
#
# The conf file format follows a modified Samba style layout.  There
# is a [global] section which will affect all database servers and
# basic program behaviour, and a section headed with the database
# server's name which will have settings which override the global
# ones.
#

# Global settings, any value here may be overridden by a database
# server specific section
[global]
        # TDS protocol version
	tds version = 7.0

	initial block size = 512

	swap broken dates = no

	swap broken money = no

	# Database server login method, if both server and domain
	# logins are enabled, domain login is tried first if a domain
	# is specified, and if that fails the server login will be used.
	try server login = yes
	try domain login = no

	# The default authentication domain, can be overridden by
	# specifying a username with a domain prefix, e.g. DOMAIN\username
;	nt domain = WORKGROUP

	# If the server responds with different domain try that one?
	cross domain login = no

	# Whether to write a TDSDUMP file for diagnostic purposes
	# (setting this to /tmp is insecure on a multi-user system)
	dump file = /tmp/freetds.log
	debug level = 10

	# Command and connection timeouts
;	timeout = 10;
;	connect timeout = 10;
	
# This is a Sybase hosted database server, if you are directly on the
# net you can use it to test.
;[JDBC]
;	host = 192.138.151.39
;	port = 4444
;	tds version = 5.0

[TDSdev2]
	host = 192.168.???.67
	port = 1433
	tds version = 7.0

# A typical Microsoft SQL Server 7.0 configuration	
;[MyServer70]
;	host = ntmachine.domain.com
;	port = 1433
;	tds version = 7.0

# A typical Microsoft SQL Server 7.0 configuration using domain logins
;[MyServer70]
;	host = ntmachine.domain.com
;	port = 1433
;	tds version = 7.0
;	try domain logins = yes
;	try server logins = no
;	nt domain = MYDOMAIN

# A typical Microsoft SQL Server 6.x configuration	
;[MyServer65]
;	host = ntmachine.domain.com
;	port = 1433
;	tds version = 4.2

  </pre>
  <pre wrap="">
<hr width="90%" size="4">
;
;  odbc.ini
;
;  ODBC DSN configuration file
;
;  This file is an OpenLink Software product configuration file.
;  To learn more about this product, or any other product in our
;  portfolio, please check out our web site at:
;
;      <a class="moz-txt-link-freetext" \
href="http://www.openlinksw.com">http://www.openlinksw.com</a> ;
;  or contact us at:
;
;      <a class="moz-txt-link-abbreviated" \
href="mailto:general.information@openlinksw.com">general.information@openlinksw.com</a>
 ;
;  If you have any technical questions, please contact our support
;  staff at:
;
;      <a class="moz-txt-link-abbreviated" \
href="mailto:technical.support@openlinksw.com">technical.support@openlinksw.com</a> ;
[ODBC Data Sources]
XXXBTEST = OpenLink SQL Server Lite Driver
XXXtest  = Leon testing again
OpenLink = OpenLink (MT)
XXX2     = SQL Server
TDSdev2  = Developer2 pubs via FreeTDS
TDSxxxt  = CIXXXB XXXTEST via FreeTDS
Doomed   = Just another random test
Default  = this sucks
DEFAULT  = this really sucks

[TDSdev2x]
Driver          = TDS
Description     = Developer2 pubs via FreeTDS 1
Host            = 192.168.???.67
ServerName      = 192.168.???.67
ServerType      = SQLServer 7
FetchBufferSize = 99
UserName        = sa
UID             = sa
Password        = 7board
PWD             = 7board
Database        = pubs
ReadOnly        = no
Trace           = 1
TraceFile       = /tmp/iodbc.trace

[TDSdev2]
Driver          = /usr/lib/libtdsodbc.so
Description     = Developer2 pubs via FreeTDS 1
Host            = 192.168.???.67
ServerName      = 192.168.???.67
ServerType      = SQLServer 7
FetchBufferSize = 99
UserName        = sa
UID             = sa
Password        = 7board
PWD             = 7board
Database        = pubs
ReadOnly        = no
Trace           = 1
TraceFile       = /tmp/iodbc.trace

[Doomed]
Driver          = /home/xxxstaff/ODBCbridge/lib/sql_st_lt.so
Description     = Test DB Devel2
Host            = 192.168.???.67
ServerType      = SQLServer 7
FetchBufferSize = 99
UserName        = sa
Password        = 7board
Database        = pubs
ReadOnly        = no
Trace           = 1
TraceFile       = /tmp/iodbc.trace

[TDSxxxt]
Description     = CIXXXB XXXTEST via FreeTDS
Options         = CIXXXB
UserName        = shaunp
ServerType      = SQLServer 7
Driver          = /usr/lib/libtdsodbc.so
Database        = XXXBTEST
FetchBufferSize = 99
Host            = 192.168.???.130
Password        = melange

[XXXBTEST]
Description     = CIXXXB XXXBTEST via ODBCbridge
Options         = CIXXXB
UserName        = shaunp
ServerType      = SQLServer 7
Driver          = /home/xxxstaff/ODBCbridge/lib/sql_st_lt.so
Database        = XXXBTEST
FetchBufferSize = 99
Host            = 192.168.???.130
Password        = melange

[XXX2]
Driver      = /home/xxxstaff/ODBCbridge/lib/sql_st_lt.so
Description = bleah

[OpenLink]
Driver          = /home/openlink/lib/oplodbc.so.1
Description     = Sample OpenLink MT DSN
Host            = localhost
ServerType      = Oracle 8
FetchBufferSize = 99
UserName        = 
Password        = 
Database        = 
ServerOptions   = 
ConnectOptions  = 
Options         = 
ReadOnly        = no

[XXXtest]
Driver          = /usr/local/iodbc/lib/oplodbc.so.1
Description     = XXX test DB
Host            = 192.168.23.130
ServerType      = SQLServer 7
FetchBufferSize = 99
UserName        = sa
Password        = 7board
Database        = XXXTEST
ReadOnly        = no
Trace           = 1
TraceFile       = /tmp/iodbc.trace

[Default]
Driver          = /home/xxxstaff/ODBCbridge/lib/sql_st_lt.so
Description     = Test DB Devel2
Host            = 192.168.???.67
ServerType      = SQLServer 7
FetchBufferSize = 99
UserName        = sa
Password        = 7board
Database        = pubs
ReadOnly        = no
Trace           = 1
TraceFile       = /tmp/iodbc.trace

[DEFAULT]
Driver          = /home/xxxstaff/ODBCbridge/lib/sql_st_lt.so
Description     = Test DB Devel2
Host            = 192.168.???.67
ServerType      = SQLServer 7
FetchBufferSize = 99
UserName        = sa
Password        = 7board
Database        = pubs
ReadOnly        = no
Trace           = 1
TraceFile       = /tmp/iodbc.trace

[ODBC]
DebugFile = /tmp/odbc.debug

  </pre>
  <pre wrap="">
<hr width="90%" size="4">
[ODBC Drivers]
OpenLink (MT)	= Installed
TDS             = Installed
PostgresSQL     = Installed

[OpenLink (MT)]
Description     = USD4000
Driver		= /usr/lib/liboplodbcS.so.1
Setup		= /usr/lib/liboplodbcS.so.1

[TDS]
Description	= TDS v0.53 with protocol v7.0
Driver		= /usr/lib/libtdsodbc.so
Driver		= /usr/lib/libtdsodbcS.so
FileUsage	= 1

[PostgresSQL]
Description     = PostgresSQL
Driver          = /usr/lib/libodbcpsql.so
Setup           = /usr/lib/libodbcpsqlS.so
FileUsage       = 1



  </pre>
  <pre wrap="">
<hr width="90%" size="4">
---
You are currently subscribed to freetds as: [<a class="moz-txt-link-abbreviated" \
href="mailto:pharvey@codebydesign.com">pharvey@codebydesign.com</a>] To unsubscribe, \
forward this message to <a class="moz-txt-link-abbreviated" \
href="mailto:leave-freetds-113879Q@franklin.oit.unc.edu">leave-freetds-113879Q@franklin.oit.unc.edu</a>
  </pre>
</blockquote>
<br>

---<BR>
You are currently subscribed to freetds as: [freetds@progressive-comp.com]<BR>
To unsubscribe, forward this message to leave-freetds-113879Q@franklin.oit.unc.edu
</BODY>
</html>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic