I think I am going to dump SQL Server and just go with Postgres. Much
easier, and less of a headache. Fortunately, we are not yet in production.

Thanks!

Greg--


On Thu, Sep 4, 2014 at 8:31 PM, Horcle <g...@umn.edu> wrote:

> Thanks. I forgot to mention that I had tried adding the encoding scheme to
> freetds.conf. I also tried other encoding schemes, all to no avail. I may
> try pymssql tomorrow to see what that does. I would have tried mxodbc, but
> I am not about to pay $379 for a driver. I may also see if I can get the MS
> ODBC driver for Linux to work on my Mac.
>
> I have to say that the MS SQL stuff is a royal PITA, but unfortunately,
> that is what I am stuck with at work. Uggh. (;_;)
>
> The version of FreeTDS I have been using has always been 9.1 (although, I
> noticed that the Brew formula for it changed in the last few days to 9.1_1,
> for what that's worth).
>
> Greg--
>
> On Thursday, September 4, 2014 5:23:02 PM UTC-5, Michael Bayer wrote:
>>
>> SQL Server and unix, many things can change:
>>
>> - UnixODBC version
>> - FreeTDS version  (0.82 and 0.91 have *extremely* different behaviors)
>> - FreeTDS configuration
>>
>> The first place I’d look in this case would be your freetds.conf, you
>> probably need to configure the character set correctly in there.
>>
>>
>>
>> On Sep 4, 2014, at 5:06 PM, Horcle <g...@umn.edu> wrote:
>>
>> I had to reinstall my python dev environment from scratch due to a hd
>> failure, and in the process something seems to have changed.
>>
>> When querying against MS SQL using the script (test_conenction.py):
>> import pyodbc
>> import sqlalchemy
>> from sqlalchemy.engine import reflection
>> from sqlalchemy.engine.reflection import Inspector
>>
>> def connect():
>>     return pyodbc.connect(
>> 'DRIVER={FreeTDS};SERVER=server.ip.address;'
>> 'DATABASE=STUDY_PARTICIPANT;UID=test;PWD=test;port=1433;CHARSET=utf8;'
>> 'TDS_Version=9.1;')
>> engine = sqlalchemy.create_engine('mssql+pyodbc://', creator=connect,
>> encoding='latin1',echo='debug',supports_unicode_binds=False)
>> conn = engine.connect()
>> print conn
>>
>> for row in engine.execute('select 6 * 7 as [Result];'):
>>     print row.Result
>>
>> insp = reflection.Inspector.from_engine(engine)
>> table_name = 'irb_desc'
>> table_names = insp.get_table_names()
>> if table_name not in table_names:
>>     print 'A: ' + table_name
>>
>> I used to get the following nice output:
>>
>> python test_connect.py
>> 2014-08-18 16:15:06,611 INFO sqlalchemy.engine.base.Engine
>>            SELECT default_schema_name FROM
>>            sys.database_principals
>>            WHERE principal_id=database_principal_id()
>>
>> 2014-08-18 16:15:06,611 INFO sqlalchemy.engine.base.Engine ()
>> 2014-08-18 16:15:06,613 DEBUG sqlalchemy.engine.base.Engine Col (
>> 'default_schema_name',)
>> 2014-08-18 16:15:06,614 DEBUG sqlalchemy.engine.base.Engine Row (u'dbo',
>> )
>> 2014-08-18 16:15:06,616 INFO sqlalchemy.engine.base.Engine SELECT CAST('test
>> plain returns' AS VARCHAR(60)) AS anon_1
>> 2014-08-18 16:15:06,616 INFO sqlalchemy.engine.base.Engine ()
>> 2014-08-18 16:15:06,619 INFO sqlalchemy.engine.base.Engine SELECT CAST('test
>> unicode returns' AS NVARCHAR(60)) AS anon_1
>> 2014-08-18 16:15:06,619 INFO sqlalchemy.engine.base.Engine ()
>> <sqlalchemy.engine.base.Connection object at 0x101877ed0>
>> 2014-08-18 16:15:06,639 INFO sqlalchemy.engine.base.Engine select 6 * 7
>> as [Result];
>> 2014-08-18 16:15:06,639 INFO sqlalchemy.engine.base.Engine ()
>> 2014-08-18 16:15:06,641 DEBUG sqlalchemy.engine.base.Engine Col ('Result'
>> ,)
>> 2014-08-18 16:15:06,641 DEBUG sqlalchemy.engine.base.Engine Row (42, )
>> 42
>> 2014-08-18 16:15:06,647 INFO sqlalchemy.engine.base.Engine SELECT [
>> TABLES_1].[TABLE_NAME]
>> FROM [INFORMATION_SCHEMA].[TABLES] AS [TABLES_1]WHERE [TABLES_1].[
>> TABLE_SCHEMA] = CAST(? AS NVARCHAR(max)) AND [TABLES_1].[TABLE_TYPE] = ?
>> ORDER BY [TABLES_1].[TABLE_NAME]
>> 2014-08-18 16:15:06,647 INFO sqlalchemy.engine.base.Engine ('dbo', 'BASE
>> TABLE')
>> 2014-08-18 16:15:06,663 DEBUG sqlalchemy.engine.base.Engine Col (
>> 'TABLE_NAME',)
>> 2014-08-18 16:15:06,663 DEBUG sqlalchemy.engine.base.Engine Row (u
>> 'irb_desc', )
>> 2014-08-18 16:15:06,663 DEBUG sqlalchemy.engine.base.Engine Row (u'irbd',
>> )
>> 2014-08-18 16:15:06,663 DEBUG sqlalchemy.engine.base.Engine Row (u
>> 'study_desc', )
>> 2014-08-18 16:15:06,664 DEBUG sqlalchemy.engine.base.Engine Row (u
>> 'study_irb', )
>> 2014-08-18 16:15:06,664 DEBUG sqlalchemy.engine.base.Engine Row <span
>> style="color: #660;" class="st
>>
>> ...
>
>  --
> You received this message because you are subscribed to a topic in the
> Google Groups "sqlalchemy" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/sqlalchemy/-i4-GQpXkzY/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> sqlalchemy+unsubscr...@googlegroups.com.
> To post to this group, send email to sqlalchemy@googlegroups.com.
> Visit this group at http://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Greg M. Silverman
Senior Developer Analyst
Cardiovascular Informatics <http://www.med.umn.edu/cardiology/>
University of Minnesota
612-626-0919
g...@umn.edu

 ›  flora-script <http://flora-script.grenzi.org/> ‹
 ›  grenzi.org  ‹

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to