this is #2355:

http://www.sqlalchemy.org/trac/ticket/2355

Pyodbc + MSSQL is not yet tested for Py3K.   (note it's on the map as 
'development': www.sqlalchemy.org/docs/core/engines.html#supported-databases )

PyODBC + MSSQL is a tricky platform overall so you might need to stick with 
py2k for the moment.    The above ticket shouldn't be hard to fix, but it's not 
yet clear what other pyodbc + py3k issues might need to be solved once that one 
is fixed.



On Jan 2, 2012, at 4:48 AM, keson wrote:

> I'm using python 3.2.2, sqlalchemy 0.7.4 and pyodbc 3.0.2
> 
> from sqlalchemy import create_engine, MetaData, Table
> engine = create_engine('mssql+pyodbc://user:pass@dsn')
> metadata = MetaData(engine)
> my_view = Table("PGRDAT", metadata, autoload=True)
> 
> 
> and getting this error:
> 
> Traceback (most recent call last):
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\pool.py", line 675, in _do_get
>    return self._pool.get(wait, self._timeout)
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\util\queue.py", line 137, in get
>    raise Empty
> sqlalchemy.util.queue.Empty
> 
> During handling of the above exception, another exception occurred:
> 
> Traceback (most recent call last):
>  File "mssql_test.py", line 4, in <module>
>    my_view = Table("PGRDAT", metadata, autoload=True)
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\schema.py", line 292, in __new__
>    table._init(name, metadata, *args, **kw)
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\schema.py", line 353, in _init
>    self._autoload(metadata, autoload_with, include_columns)
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\schema.py", line 377, in _autoload
>    self, include_columns
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\engine\base.py", line 2276, in run_callable
>    conn = self.contextual_connect()
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\engine\base.py", line 2342, in contextual_connect
>    self.pool.connect(),
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\pool.py", line 210, in connect
>    return _ConnectionFairy(self).checkout()
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\pool.py", line 371, in __init__
>    rec = self._connection_record = pool._do_get()
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\pool.py", line 697, in _do_get
>    con = self._create_connection()
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\pool.py", line 174, in _create_connection
>    return _ConnectionRecord(self)
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\pool.py", line 259, in __init__
>    pool.dispatch.first_connect.exec_once(self.connection, self)
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\event.py", line 262, in exec_once
>    self(*args, **kw)
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\event.py", line 271, in __call__
>    fn(*args, **kw)
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\engine\strategies.py", line 167, in first_connect
>    dialect.initialize(c)
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\connectors\pyodbc.py", line 127, in initialize
>    super(PyODBCConnector, self).initialize(connection)
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\dialects\mssql\base.py", line 1130, in initialize
>    super(MSDialect, self).initialize(connection)
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\engine\default.py", line 176, in initialize
>    self._get_default_schema_name(connection)
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\dialects\mssql\base.py", line 1146, in
> _get_default_schema_name
>    user_name = connection.scalar("SELECT user_name() as user_name;")
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\engine\base.py", line 1339, in scalar
>    return self.execute(object, *multiparams, **params).scalar()
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\engine\base.py", line 1405, in execute
>    params)
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\engine\base.py", line 1582, in _execute_text
>    statement, parameters
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\engine\base.py", line 1665, in _execute_context
>    result = context.get_result_proxy()
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\dialects\mssql\base.py", line 737, in get_result_proxy
>    return base.ResultProxy(self)
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\engine\base.py", line 2722, in __init__
>    self._init_metadata()
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\engine\base.py", line 2729, in _init_metadata
>    self._metadata = ResultMetaData(self, metadata)
>  File "c:\Python32\lib\site-packages\sqlalchemy-0.7.4-py3.2.egg
> \sqlalchemy\engine\base.py", line 2585, in __init__
>    colname = dialect._description_decoder(colname)
> AttributeError: 'MSDialect_pyodbc' object has no attribute
> '_description_decoder'
> 
> 
> Any idea how to avoid this error?
> Thanks in advance
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To post to this group, send email to sqlalchemy@googlegroups.com.
> To unsubscribe from this group, send email to 
> sqlalchemy+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/sqlalchemy?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to