2012-11-21 7 views
7

Es besteht ein Problem beim Herstellen einer Verbindung mit einer Microsoft SQL Server-Instanz von pyODBC innerhalb einer Ubuntu (12.10)-Maschine.Herstellen einer Verbindung mit Microsoft SQL Server über pyODBC unter Ubuntu

Der Fehler, den ich immer bin zurück ist:

pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data Source name not found, and no default driver specified (0) (SQLDriverConnect)') 

Die Verbindungszeichenfolge für Pyodbc ist mit ist:

self.corpus_cnxn = pyodbc.connect('DRIVER={FreeTDS};SERVER=UKEDN-06880;DATABASE=db1;UID=user;PWD=pass') 

Dies scheint von Pyodbc innerhalb von Windows zu funktionieren (muß nur die Änderungen TREIBER zu 'SQL Server' anstelle von 'FreeTDS'), und es funktioniert gut, wenn ich versuche, eine Verbindung vom Ubuntu-Rechner mit dem tsqlTool vom Terminal mit dem folgenden Befehl:

tsql -S UKEDN-06880 -p 1433 -U user -P pass 

Ich kann eine beliebige Tabelle ohne Probleme auswählen, es scheint nur nicht von pyODBC zu funktionieren.

Jede Hilfe oder Beratung wird sehr geschätzt werden, meine Linux-Fähigkeiten sind sehr schwach und bin total fest, obwohl, da es von Tsql funktioniert ich das Gefühl habe, dass sehr nahe sind!

Antwort

9

Es sieht so aus, als ob Sie freedTDS richtig arbeiten lassen, da Sie tsql verwenden können. Hast du versucht, dich mit isql zu verbinden?

Betrachten Sie diese howto für einen detaillierten Spaziergang durch. Der Teil, den ich denke, dass Sie brauchen, ist in Unixodbc ein wenig nach unten auf der Seite einrichten.

+0

Arbeitete! Danke Matthew – ToOsIK

+0

Danke. Dieser Link hat viele Stunden gerettet. Ich habe jetzt eine Sql-Server-Verbindung in Python von einer Konsole auf einer Linux-Box, die irgendwie falsch fühlt: D –

+0

Der Link ist 404 –

2

erste stape $ sudo apt-get libmdbodbc1

bearbeiten Sie die Datei /etc/odbcinst.ini wie diese

[Microsoft Access Driver (*.mdb)] 
Description = Microsoft Access Driver (*.mdb) 
Driver  = /path/to/file/libmdbodbc.so 
Setup  = /path/to/file/libtdsS.so 
CPTimeout = 
CPReuse  = 

und die Datei installieren /etc/odbc.ini

[Microsoft Access Driver (*.mdb)] 
Description   = SQL Server 
Driver    = Microsoft Access Driver (*.mdb) 
Trace    = No 
TraceFile   = /tmp/mssodbc.log 
Verwandte Themen