2010-07-30 3 views
0

Linux의 Python에서 MS SQL Server db에 연결하고 있습니다. FreeTDS 드라이버를 사용하여 pyodbc를 통해 연결합니다. MSSQL에서 money 필드를 반환하면 파이썬 Decimal이 아닌 float으로 처리됩니다.FreeTDS MS SQL 돈 유형을 십진수가 아닌 파이썬 부동 소수점으로 변환

문제는 FreeTDS입니다. Windows에서 똑같은 Python 코드를 실행하면 (FreeTDS를 사용할 필요가없는) pyodbc는 Python Decimal을 반환합니다.

Linux에서 코드를 실행할 때 어떻게 파이썬 Decimal을 다시 가져올 수 있습니까?

+0

unixODBC를 사용하고 있습니까? 나는 문제가 거기에있을 수 있을지 궁금해한다. FreeTDS가 십진법/돈형을 지원한다는 것은 확실하다. – Mark

+0

있습니다. 나는 주말에 집으로 향하고있다. 나는 이것을 월요일에 점검 할 것이다. 팁 고마워. – mwolfe02

+0

OK, 저는 unixODBC를 사용하고 있습니다. 나는이 문제가 내 freetds.conf 파일에 있었을 것이라고 생각한다. 방금 tds 버전을 4.2에서 8.0으로 변경했지만 변경 사항을 적용하려면 무엇을해야하는지 모르겠습니다. 아파치를 다시 시작해야합니까? 다른 것을 다시 시작 하시겠습니까? – mwolfe02

답변

0

이것은 FreeTDS의 버그였습니다. 이 버그는 FreeTDS의 CVS 책임자 (2010 년 8 월 4 일)로 수정되었습니다 (Freddy Ziglio에게 감사드립니다). 자세한 내용은 web2py 메시지 보드의 my post을 참조하십시오.

1

언제든지 Decimal로 변환 할 수 있습니다 ...

+0

결국 많은 전환이 발생하고 정확히 DRY가 아닙니다. 나는 그것이 퇴보 계획이라는 것에 동의하지만, 나는 그것을 피하고 싶습니다. – mwolfe02