[freetds] Problems Connecting Debian --> MSSQL through odbc
jklowden at schemamania.org
jklowden at schemamania.org
Tue Jul 28 14:04:39 EDT 2009
On Tue, Jul 28, 2009 at 05:13:54PM +0200, Jaap van Arragon wrote:
>
> In the script it says that its finding the driver but at the end the driver
> cannot be found?
Take away the sh -x output and perhaps it's clearer:
> found driver line: " Driver = /usr/lib/odbc/libtdsodbc.so"
> found driver /usr/lib/odbc/libtdsodbc.so for [FreeTDS] in odbcinst.ini
> /usr/lib/odbc/libtdsodbc.so is not an executable file
> osqlscript.sh: error: no driver found for SBGROEP
Maybe "found" isn't quite right; it means it found that string in the file, not the file in the filesystem. That is,
> found driver /usr/lib/odbc/libtdsodbc.so for [FreeTDS] in odbcinst.ini
means odbcinst.ini has a section [FreeTDS] with a Driver line, i.e.:
Driver = /usr/lib/odbc/libtdsodbc.so
and osql successfully parsed the line for the right-hand argument.
Now, just because that line exists in odbcinst.ini, it doesn't mean there's a file by that name on the disk. Or, if it does exist, that it's executable for the user running the process. What does
ls -l /usr/lib/odbc/libtdsodbc.so*
report? It should both exist and executable, e.g.:
$ ls -l /usr/lib64/libsybdb.so* | awk '{print $1,$9}'
lrwxrwxrwx /usr/lib64/libsybdb.so
lrwxrwxrwx /usr/lib64/libsybdb.so.5
-rwxr-xr-x /usr/lib64/libsybdb.so.5.0.0
$ for F in /usr/lib64/libsybdb.so*; do if [ -x $F ]; then echo executable: $F; fi; done
executable: /usr/lib64/libsybdb.so
executable: /usr/lib64/libsybdb.so.5
executable: /usr/lib64/libsybdb.so.5.0.0
HTH.
--jkl
More information about the FreeTDS
mailing list