2017-08-09 2 views
1

ich versuchen, SQL Server 2012 db mit python3 (3.5.3) Bibliothek pymssql (2.1.3) und dieser Fehler passiert verbinden:pymssql Verbindung fehlschlägt mit "Sortierungs nicht erkannt"

conn = pymssql.connect(host="192.168.xxx.xxx", user="wbs", password="[email protected]", database="mydb") 
Traceback (most recent call last): 
    File "pymssql.pyx", line 635, in pymssql.connect (pymssql.c:10734) 
    File "_mssql.pyx", line 1902, in _mssql.connect (_mssql.c:21821) 
    File "_mssql.pyx", line 637, in _mssql.MSSQLConnection.__init__ (_mssql.c:6581) 
    File "_mssql.pyx", line 1630, in _mssql.maybe_raise_MSSQLDatabaseException (_mssql.c:17524) 
_mssql.MSSQLDatabaseException: (4075, b'DB-Lib error message 20018, severity 16:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20018, severity 14:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (192.168.100.249:1433)\n') 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "pymssql.pyx", line 641, in pymssql.connect (pymssql.c:10824) 
pymssql.OperationalError: (4075, b'DB-Lib error message 20018, severity 16:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20018, severity 14:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (192.168.100.249:1433)\n') 

und in mssql Fehler es gibt ein Protokoll für sie:

The USE database statement failed because the database collation %.*ls is not recognized by older client drivers. Try upgrading the client operating system or applying a service update to the database client software, or use a different collation. See SQL 

Antwort

1

standardmäßig installiert pip pymssql 2.1.3 von einer binären Rad (.whl) Datei, die statisch auf FreeTDS 0.95 verbunden ist. Leider weiß diese ältere Version von FreeTDS nicht, wie man mit einigen der weniger häufig verwendeten SQL Server-Kollatierungen arbeitet. Beispielsweise ist bekannt, dass Persian_100_CI_AI einen ähnlichen Fehler wie den unter FreeTDS 0.9x (ref: here) beschriebenen Fehler verursacht.

FreeTDS 1.x bietet eine bessere Unterstützung für diese Kollatierungen. Eine Option wäre also, dass Sie die neueste stabile Version von FreeTDS (derzeit 1.00.51) installieren und dann pymssql aus der neuesten Quelle unter GitHub erstellen.

Alternativ können Sie versuchen, pyodbc mit einer aktuellen Version von Microsoft ODBC-Treiber für SQL Server zu verwenden.

+0

Vielen Dank, ich kompiliere und installiere freetds neuesten stabilen und Pymssql neuesten von Git und alles ist in Ordnung! – alireza

Verwandte Themen