Massimo,

Per your first post:

If I run the query using DAL, I get a Decimal type back for both
environments.  Of course, there is no way for web2py to make that
coercion for fields returned from .executesql.  Since that minimizes
the pain greatly for me, I think I will just go ahead with explicitly
converting to Decimals when working with .executesql.

If I learn anything with reference to FreeTDS I'll be sure to come
back and post that here.

Thanks to you and Michele for the help.

On Jul 30, 11:19 am, Michael Wolfe <michael.joseph.wo...@gmail.com>
wrote:
> Touché!  Point taken on the commercial software.... :)
>
> As a fall-back plan, there is an acceptable workaround.  I can
> explicitly convert the floats I receive into Decimals.  Based on
> Massimo's post, it looks like this will only be an issue for money
> fields returned from a .executesql statement.  For all other queries
> where I can leverage the DAL, I think web2py will handle things just
> fine.
>
> I'm going to post a message to the FreeTDS message board and see what
> I can learn.
>
> On Fri, Jul 30, 2010 at 11:08 AM, Michele Comitini
>
>
>
> <michele.comit...@gmail.com> wrote:
>
> > 2010/7/30 mwolfe02 <michael.joseph.wo...@gmail.com>
>
> >> Ideally, I'd like to avoid having to purchase a commercial product.
>
> > Alas you are using a commercial product.
> > indeed this is what you should look at:
> >http://www.egenix.com/products/python/mxODBCConnect/
>
> > That said it could be just a problem with the python adapter of freetds
> > pymssql.
>
> >> Plus, I don't think it would work.  mxODBC appears to be a replacement
> >> for pyodbc.  It looks like mxODBC uses FreeTDS just like pyodbc.  The
> >> problem appears to be with FreeTDS, so mxODBC doesn't look like it
> >> would be a fix for my particular problem.  In fact, mxODBC says as
> >> much itself:
>
> >> (From the mxODBC change log, Changes from 2.0.7 to 3.0.0:
> >>http://www.egenix.com/products/python/mxODBC/changelog.html)
>
> >> "Added new experimental subpackage mx.ODBC.FreeTDS which allows
> >> connecting to MS SQL Server from Unix. This is still far from even
> >> being called alpha due to the current lack of implementation support
> >> of many important ODBC APIs in the FreeTDS ODBC driver."
>
> >> The problem still seems to be FreeTDS.
>
> >> On Jul 30, 9:42 am, Michele Comitini <michele.comit...@gmail.com>
> >> wrote:
> >> > you can try with mxodbchttp://www.egenix.com/products/python/mxODBC/
>
> >> > 2010/7/30 mwolfe02 <michael.joseph.wo...@gmail.com>
>
> >> > > 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:p...@10.0.8.30/TaxDB?DRIVER={FreeTDS}<http://user:p...@10.0.8.30/TaxDB?DRIVER=%7BFreeTDS%7D>
> >> > > ',
> >> > > migrate=False)
> >> > > elif os.name=='nt':   #Windows
> >> > >    db = DAL('mssql://u...@127.0.0.1/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.

Reply via email to