mssql wrapper with pymssql driver broken

Issue #1274 resolved
Former user created an issue

mssql wrapper with pymssql DBAPI driver in sqlalchemy 0.5.0 is broken.

File "c:\python25\lib\site-packages\sqlalchemy-0.5.0-py2.5.egg\sqlalchemy\databases\mssql.py", line 1059, in do_begin connection.execute("SET IMPLICIT_TRANSACTIONS OFF") File "c:\python25\lib\site-packages\sqlalchemy-0.5.0-py2.5.egg\sqlalchemy\pool.py", line 361, in getattr return getattr(self.connection, key) AttributeError: pymssqlCnx instance has no attribute 'execute'

here the unit test:

from elixir import * import sqlalchemy as sa import unittest

db_opts = {} db_eng = None

class MSTSTA(Entity): CMSTIDCD = Field(String(3), primary_key=True) CMSTIDNM = Field(String(16)) CMSTIDDS = Field(String(32)) CMSTAUDT = Field(Numeric(8,0)) CMSTAUTM = Field(Numeric(6,0)) CMSTAUUS = Field(String(24))

def setUp_dbconn(): global db_opts, db_eng url = 'mssql://sa:master@127.0.0.1/TESTDB' db_opts'strategy' = 'threadlocal' db_opts'pool_size' = 16 db_opts'pool_recycle' = 900 db_opts'max_overflow' = 32 db_opts'echo' = False db_opts'echo_pool' = False db_eng = sa.create_engine(url, **db_opts) metadata.bind = db_eng setup_all(True, checkfirst=True)

class TestMSSQLNumeric(unittest.TestCase):

def test_1(self): obj = MSTSTA( CMSTIDCD = 'UNG', CMSTIDNM = 'Ungaran', CMSTIDDS = 'Ungaran', CMSTAUDT = 20090102, CMSTAUTM = 93000, CMSTAUUS = 'ADMIN' ) try: session.save(obj) session.commit() session.close() except: session.rollback() raise

def test_2(self): obj = MSTSTA.get('UNG') self.assert_(obj is not None) try: obj.CMSTAUDT = 20090103 session.update(obj) session.commit() session.close() except: session.rollback() raise

if name == 'main': setUp_dbconn() unittest.main()

Comments (4)

  1. Mike Bayer repo owner

    any reason you can't use pyodbc ? we've been considering dropping support for pymssql since its essentially unmaintained.

  2. Log in to comment