Бьюсь над проблемой.
pyodbc 3.0.3
Связываюсь с SQL сервером без проблем.
Выполняю запросы и т.п.
В общем-то проблема только одна.
Если приходит переменная decimal(18,2) - любой размерности (из процедуры или любого запроса):
query_string = "select convert(decimal(2,0),10.32)"
На стадии:
cur.execute(query_string.encode('utf-8')) data_procedure = cur.fetchall()
Traceback (most recent call last): File "<console>", line 1, in <module> Error: ('HY003', '[HY003] [FreeTDS][SQL Server]Program type out of range (0) (SQLGetData)')
При этом любой другой тип данных отдается отлично. Например если конвертить на лету это-же значение во float, то все нормально.
Это происходит на 32х разрядной десктопной Ubuntu и на 32х разрядной Windows 7.
При этом на Ubuntu server 12.04 LTS и gentoo (обе системы х64) все работает отлично и без проблем с decimal.
При этом на всекх четырех машинах конфиги абсолютно одинаковые.
На UNIXах вообще кофиги просто скопированы и подменены пути.
Буду очень благодарен за любую помощь.