J'ai installé freetds et unixodbc via Homebrew, en suivant plus ou moins les instructions trouvées dans ce lien pour SQL Server et ODBC sur Mac.
J'ai dévié de ces instructions en ce qui concerne l'emplacement du pilote et de la configuration, en utilisant plutôt
Driver = /usr/local/Cellar/unixodbc/2.3.2_1/lib/libodbc.dylib
Setup = /usr/local/Cellar/unixodbc/2.3.2_1/lib/libodbc.dylib
dans le fichier /usr/local/Cellar/unixodbc/2.3.2_1/etc/odbcinst.ini
car c'est là que j'ai trouvé mes bibliothèques dynamiques ODBC.
(J'ai également apporté ces changements car les Mac n'utilisent pas les fichiers *.so, c'est une nomenclature *nix, ce qui m'a un peu inquiété en suivant ces instructions, mais elles semblaient correspondre aux conseils d'autres sites, comme celui-ci pour installer RODBC sur Mac et ces excellentes instructions pour *nix.)
J'ai essayé de le lancer, fait des changements, effectué une trace via dtruss, en particulier en tapant cette commande :
dtruss isql -v odbc-test 2> junk_to_sift_through.txt
Peu importe comment j'ajuste les choses - sans les casser davantage - je continue de recevoir l'erreur suivante :
[IM004][unixODBC][Gestionnaire du pilote]L'allocation SQLAllocHandle du pilote sur SQL_HANDLE_HENV a échoué
[ISQL]ERREUR : Impossible de se connecter à SQL
Le fichier généré junk_to_sift_through.txt
avec les erreurs est assez volumineux, mais voici la fin de celui-ci, où l'erreur devrait être cachée quelque part. Mais je n'arrive pas à la trouver.
open_nocancel("/usr/local/Cellar/unixodbc/2.3.2_1/etc/odbcinst.ini\0", 0x0, 0x1B6) = 3 0
fstat64(0x3, 0x7FFF53378CB8, 0x1B6) = 0 0
read_nocancel(0x3, "[ms-sql]\nDescription = Connexion TDS\nPilote = /usr/local/Cellar/unixodbc/2.3.2_1/lib/libodbc.2.dylib\nCompteurUsage = 1\nUsageFichier = 1\nTrace = Oui\n\0", 0x1000) = 143 0
read_nocancel(0x3, "\0", 0x1000) = 0 0
close_nocancel(0x3) = 0 0
open_nocancel("/Users/mike/.odbcinst.ini\0", 0x0, 0x1B6) = 3 0
fstat64(0x3, 0x7FFF53378CB8, 0x1B6) = 0 0
read_nocancel(0x3, "[ms-sql]\nDescription = Connexion TDS\nPilote = /usr/local/Cellar/unixodbc/2.3.2_1/lib/libodbc.2.dylib\nCompteurUsage = 1\nUsageFichier = 1\nTrace = Oui\n\0", 0x1000) = 143 0
read_nocancel(0x3, "\0", 0x1000) = 0 0
close_nocancel(0x3) = 0 0
fstat64(0x1, 0x7FFF5337CD08, 0x1000) = 0 0
write_nocancel(0x2, "[ISQL]ERREUR : Impossible de se connecter à SQL\n\0", 0x22) = 34 0
write_nocancel(0x1, "[IM004][unixODBC][Gestionnaire du pilote]L'allocation SQLAllocHandle du pilote sur SQL_HANDLE_HENV a échoué\n\0", 0x53) = 83 0
Des idées par ici ?
Merci !