Are they both connecting to the same database?
Can you provide an example of how you insert and how you extract data?
This is to understand the issue better. In fact
gluon/sql.py contains the following code:
...
elif field.type[:7] == 'decimal' and value != None:
decimals = [int(x) for x in
field.type[8:-1].split(',')][-1]
if field._db._dbname == 'sqlite':
value = ('%.'+str(decimals)+'f') % value
if not isinstance(value,decimal.Decimal):
value = decimal.Decimal(str(value))
...
so technically even if the database where to return float (wrong),
web2py should still return decimal. Is this the case for you?
On Jul 30, 8:35 am, mwolfe02 <[email protected]> wrote:
> For background, refer to related questions on
> SO:http://stackoverflow.com/questions/3364699/http://stackoverflow.com/questions/3371795/
>
> I'm developing my app on Windows, but will be deploying it on a Linux
> server. The following lines are from the top of my db.py:
>
> if os.name=='posix': #Ubuntu
> db = DAL('mssql://user:[email protected]/TaxDB?DRIVER={FreeTDS}',
> migrate=False)
> elif os.name=='nt': #Windows
> db = DAL('mssql://[email protected]/TaxDB_Dev?
> Trusted_Connection=Yes', migrate=False)
>
> The problem I am running into is that on Windows, my MS SQL money
> fields are returned as Python Decimals. However, on Linux, those same
> fields are returned as floats. I think the issue is with FreeTDS.
> The above lines are the _only_ lines that are different between my
> production and development versions. Obviously, the environments
> themselves are vastly different.
>
> Is there an alternative to FreeTDS to connect to SQL Server from
> Linux? Do I need to provide some additional info in my connection
> string? Am I just stuck because I'm accessing SQL Server from Linux?
>
> Thanks in advance for any insight.