ProgrammingError Exception With autoload on MSSQL

Issue #955 resolved
Former user created an issue

I am getting a ProgrammingError exception when I turn on autoload for my MSSQL connection. The error goes away if I turn off autoload. Here is the exception.

File 'C:\\eclipse\\workspace\\ondemand\\ondemand\\controllers\\account.py', line 3 in <module>
  from ondemand.lib.base import *
File 'C:\\eclipse\\workspace\\ondemand\\ondemand\\lib\\base.py', line 14 in <module>
  import ondemand.model as model
File 'C:\\eclipse\\workspace\\ondemand\\ondemand\\model\\__init__.py', line 13 in <module>
  companies_table = Table("Company", metadata, autoload=True)
File 'c:\\python25\\lib\\site-packages\\sqlalchemy-0.4.1-py2.5.egg\\sqlalchemy\\schema.py', line 109 in __call__
  return type.__call__(self, name, metadata, *args, **kwargs)
File 'c:\\python25\\lib\\site-packages\\sqlalchemy-0.4.1-py2.5.egg\\sqlalchemy\\schema.py', line 232 in __init__
  autoload_with.reflecttable(self, include_columns=include_columns)
File 'c:\\python25\\lib\\site-packages\\sqlalchemy-0.4.1-py2.5.egg\\sqlalchemy\\engine\\base.py', line 1189 in reflecttable
  self.dialect.reflecttable(conn, table, include_columns)
File 'c:\\python25\\lib\\site-packages\\sqlalchemy-0.4.1-py2.5.egg\\sqlalchemy\\databases\\mssql.py', line 596 in reflecttable
  cursor = connection.execute("sp_columns [%s](%s)" % self.identifier_preparer.format_table(table))
File 'c:\\python25\\lib\\site-packages\\sqlalchemy-0.4.1-py2.5.egg\\sqlalchemy\\engine\\base.py', line 789 in execute
  return Connection.executors[c](c)(self, object, multiparams, params)
File 'c:\\python25\\lib\\site-packages\\sqlalchemy-0.4.1-py2.5.egg\\sqlalchemy\\engine\\base.py', line 799 in _execute_text
  self.__execute_raw(context)
File 'c:\\python25\\lib\\site-packages\\sqlalchemy-0.4.1-py2.5.egg\\sqlalchemy\\engine\\base.py', line 864 in __execute_raw
  self._cursor_execute(context.cursor, context.statement, context.parameters[0](0), context=context)
File 'c:\\python25\\lib\\site-packages\\sqlalchemy-0.4.1-py2.5.egg\\sqlalchemy\\engine\\base.py', line 880 in _cursor_execute
  raise exceptions.DBAPIError.instance(statement, parameters, e)
ProgrammingError: (ProgrammingError) ('42000', "[42000](42000) [Microsoft](Microsoft)[SQL Server Driver](ODBC)[Server](SQL)Unclosed quotation mark before the character string 'dbo.[Company](Company)'. (105)") 'sp_columns [dbo.[Company](dbo.[Company)]' {}

The python code:

from pylons import config
from sqlalchemy import Column, MetaData, Table, types
from sqlalchemy.orm import mapper
from sqlalchemy.orm import scoped_session, sessionmaker

Session = scoped_session(sessionmaker(autoflush=True, transactional=True,
                                      bind=config['pylons.g']('pylons.g').sa_engine))

metadata = MetaData()
sa_engine = config['pylons.g']('pylons.g').sa_engine
metadata.bind = sa_engine

companies_table = Table('Company', metadata, autoload=True)

class Company(object):
    def __str__(self):
        return self.Name


mapper(Company, companies_table)

Comments (2)

  1. Log in to comment