On Jan 21, 2014, at 4:31 AM, 曹忠 <joo.t...@gmail.com> wrote:

> test env: sql server 2005 and pyodbc 3.0.7 and freetds 0.91, on debian 8.0
> product env: sql server 2005 and pyodbc 3.0.7 and native client 10.0, on 
> windows 2003
> above two env  is the same behavior with 0.9.1, always return decimal object 
> for float type
> 
> follow is part data model:
> 
> from sqlalchemy.ext.declarative import declarative_base
> from sqlalchemy.schema import Column, 
> from sqlalchemy.types import SmallInteger, Integer, Float
> from sqlalchemy.types import String
> 
> Base = declarative_base()
> 
> class Unit(Base):
>     __tablename__ = 't_MeasureUnit'
> 
>     id = Column('FMeasureUnitID', Integer, autoincrement=False,  
> primary_key=True)
>     name = Column('FName', String(80), nullable=False)
>     number = Column('FNumber', String(30), nullable=False)
>     short_number = Column('FShortNumber', String(30))
>     conversation = Column('FConversation', Integer, server_default='(1)')
>     coefficient = Column('FCoefficient', Float, nullable=False, 
> server_default='(1)')
>     deleted = Column('FDeleted', SmallInteger, nullable=False, 
> server_default='(0)')
> 
> with 0.8.4, conversation column return python float object, upgrade to 0.9 or 
> 0.9.1 all Float column always return decimal object.
> my project and the data model has been running for over two years, pass two 
> year with 0.7 and 0.8 no problem. my project not need to use decimal, float 
> precision  is sufficient.

uh, but “conversation” above is an Integer.  What is the actual datatype on SQL 
Server?    Are you sure you’re not referring to “coefficient” ?


Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to