2017-03-03 81 views
0

使用OS Windows,Python 3.4,pyodbc與SQL Server驅動程序,它將SQL十進制(18,6)轉換爲(並且正確)爲python decimal.Decimal。FreeTDS將SQL十進制返回爲float

在Linux,Python 3.4,pyodbc和FreeTDS 0.91-6驅動程序中,同一列轉換爲python float(以及所有與浮點四捨五入有關的問題)。

有沒有辦法強制FreeTDS將SQL數值/小數轉換爲python的decimal.Decimal,因爲它應該是默認值?

回答

0

其實我發現了一個解決方法通過在ODBC連接字符串指定TDS_Version = 8.0,因爲它是在這裏指出: FreeTDS bug back from 2010

+2

需要注意的是TDS 8.0版本僅僅是7.1版本的別名,並指定8.0「,應避免因到未來的兼容性問題「(詳情請見http://www.freetds.org/userguide/choosingtdsprotocol.htm))。 –