web-dev-qa-db-fra.com

Libtdsodbc.so manquant dans freetds-dev - MSSQL sur Ubuntu

J'essaie de faire fonctionner MSSQL sur Ubuntu 12.04 via ODBC, et j'ai suivi ces étapes à la lettre:

http://jamesrossiter.wordpress.com/2011/03/08/connecting-to-Microsoft-sql-server-using-odbc-from-ubuntu-server/

Cependant, ceci omet ces deux fichiers pointés dans odbcinst.ini:

Driver = /usr/lib/odbc/libtdsodbc.so
Setup = /usr/lib/odbc/libtdsS.so

Alors, j'ai googlé un peu et trouvé ceci:

http://ubuntuforums.org/showthread.php?t=433435&page=2

J'ai donc suivi ces instructions et mis libtdsodbc.so dans/usr/lib/odbc /, mais j'obtiens toujours l'erreur suivante:

Can't open lib '/usr/lib/odbc/libtdsodbc.so' : file not found, SQL state 01000 in SQLConnect

Mais...

root@ubuntu:/usr/lib/odbc# ls -la
total 552
drwxr-xr-x  2 root root   4096 Aug 19 20:12 .
drwxr-xr-x 62 root root  12288 Aug 19 19:41 ..
-rwxrwxr-x  1 root root 270608 Aug 19 20:00 libtdsodbc.so

J'ai essayé chmod 775 sur ce fichier, ce qui explique les autorisations. Toujours pas de chance.

Des idées? Je suis perplexe. J'aimerais vraiment que cela fonctionne sur ma machine Linux.

EDIT: J'utilise Ubuntu 64 bits. Je parie que c'est le problème. J'espère que cela pourra aider...

EDIT2: J'ai essayé d'obtenir manuellement le paquet 64 bits à partir d'ici:

http://www.ubuntuupdates.org/package/core/precise/main/base/tdsodbc

Et puis j'ai vu qu'il y avait un fichier appelé ceci:

/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so

Woo, peut-être une version 64 bits, non?

J'ai donc pointé odbcinst.ini dessus, et cela n'a pas fonctionné.

12
Michael B

J'ai fini par le résoudre à l'aide de ce message de liste de diffusion:

http://mailman.unixodbc.org/pipermail/unixodbc-support/2008-November/001842.html

Sauf:

Driver = TDS

Devrait être:

Driver = FreeTDS

Ce pilote 64 bits étrange que je devais trouver manuellement était également pertinent, et ignorer freetds.conf était la solution.

Truc amusant.

1
Michael B
Sudo apt-get install freetds-dev

ou

Sudo apt-get install tdsodbc

maintenant pour 32 bits regarder dans:

/usr/lib/i386-linux-gnu/odbc/libtdsodbc.so

ou 64 bits:

/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
18
Michael Ekoka