I'd love to revert that change and just say MSSQL doesn't support SAVEPOINT for now. or put an "enable_savepoint" flag in the dialect.
polaar wrote: > > Could this be related to this change: > http://www.sqlalchemy.org/trac/changeset/5564 > > I encountered a similar problem with mssql/pyodbc today (the echo > output showed the correct statements and params, but no changes seemed > to be made in the db at all). The problem only occurred when using the > orm/session layer, same statements with engine.execute seemed to work. > > I managed to "fix" it by reverting the change with the following > monkeypatch: > > from sqlalchemy.databases.mssql import MSSQLDialect > MSSQLDialect.do_begin = lambda self, conn: pass > > Not sure this is related though (or if this is a good solution), just > thought I'd let it know in case it helps. > > greetings, > > Steven > > > > On 25 apr, 15:05, Michael Trier <[email protected]> wrote: >> On Apr 24, 2009, at 7:50 PM, Michael Mileusnich >> >> <[email protected]> wrote: >> > Wow..your example worked for me. Could the kwargs the issue? >> >> No. Likely you have some sort of conflict on the dbapi side. >> >> If it's possible for you to send me your actual code >> ([email protected]) I'd be happy to try and figure out the issue. >> >> > On Fri, Apr 24, 2009 at 3:14 PM, mtrier <[email protected]> wrote: >> >> > > > On Apr 24, 2009, at 4:02 AM, Michael Mileusnich wrote: >> >> > > > I have formated my PC with Vista 32. I also Installed SQL >> > Server 2008 >> > > > Express. Installed Python 2.6 and pyodbc...SAME ISSUE. I would >> > be willing >> > > > to have somebody overlook my python code. With echo on >> > everything looks >> > > > like it should be INSERTING. >> >> > I've written this script based on the information you have supplied. >> > It works fine for me: >> >> > from sqlalchemy import * >> > from sqlalchemy.orm import * >> >> > engine = create_engine('mssql://sprint:spr...@localhost/sprint', >> > echo=True) >> > metadata = MetaData(engine) >> > Session = scoped_session(sessionmaker(bind=engine, autoflush=False, >> > autocommit=True)) >> >> > action_table = Table( >> > 'ACTIONS', metadata, >> > Column('ACTIONID', String(48), primary_key=True), >> > Column('TITLE', String(128)), >> > Column('CMDLINE', String(512)), >> > Column('STDIN', Text), >> > Column('STARTINDIR', String(512)), >> > Column('PRIO', Integer), >> > ) >> >> > class action(object): >> > def __init__(self, ACTIONID, CMDLINE): >> > self.ACTIONID = ACTIONID >> > self.CMDLINE = CMDLINE >> >> > def __repr__(self): >> > return "<action('%s', '%s')>" % (self.ACTIONID, self.CMDLINE) >> >> > mapper(action, action_table) >> >> > metadata.create_all() >> >> > session = Session() >> > new_action = action(ACTIONID = '500', CMDLINE = 'sol') >> > session.add(new_action) >> > session.flush() >> > session.expunge_all() >> >> > act = session.query(action).filter_by(ACTIONID='500').one() >> > assert new_action.ACTIONID == act.ACTIONID >> >> > ---------------------- >> >> > Would you please try it and let me know what results you get. The >> > following is my output. >> >> > S:\sqlalchemy.git\lib>python msssqlprob.py >> > 2009-04-24 16:10:30,473 INFO sqlalchemy.engine.base.Engine.0x...6110 >> > SELECT user_name() as user_name; >> > 2009-04-24 16:10:30,552 INFO sqlalchemy.engine.base.Engine.0x...6110 >> > [] >> > 2009-04-24 16:10:30,568 INFO sqlalchemy.engine.base.Engine.0x...6110 >> > SELECT default_schema_name FROM >> > sys.database_principals >> > WHERE name = ? >> > AND type = 'S' >> >> > 2009-04-24 16:10:30,568 INFO sqlalchemy.engine.base.Engine.0x...6110 >> > [u'dbo'] >> > 2009-04-24 16:10:30,582 INFO sqlalchemy.engine.base.Engine.0x...6110 >> > SELECT [COLUMNS_1].[TABLE_SCHEMA], [COLUMNS_1].[TAB >> > LE_NAME], [COLUMNS_1].[COLUMN_NAME], [COLUMNS_1].[IS_NULLABLE], >> > [COLUMNS_1].[DATA_TYPE], [COLUMNS_1].[ORDINAL_POSITION], >> > [COLUMNS_1].[CHARACTER_MAXIMUM_LENGTH], [COLUMNS_1]. >> > [NUMERIC_PRECISION], [COLUMNS_1].[NUMERIC_SCALE], [COLUMNS_1].[COLU >> > MN_DEFAULT], [COLUMNS_1].[COLLATION_NAME] >> > FROM [INFORMATION_SCHEMA].[COLUMNS] AS [COLUMNS_1] >> > WHERE [COLUMNS_1].[TABLE_NAME] = ? AND [COLUMNS_1].[TABLE_SCHEMA] = ? >> > 2009-04-24 16:10:30,598 INFO sqlalchemy.engine.base.Engine.0x...6110 >> > ['ACTIONS', u'dbo'] >> > 2009-04-24 16:10:30,598 INFO sqlalchemy.engine.base.Engine.0x...6110 >> > CREATE TABLE [ACTIONS] ( >> > [ACTIONID] VARCHAR(48) NOT NULL, >> > [TITLE] VARCHAR(128) NULL, >> > [CMDLINE] VARCHAR(512) NULL, >> > [STDIN] TEXT NULL, >> > [STARTINDIR] VARCHAR(512) NULL, >> > [PRIO] INTEGER NULL, >> > PRIMARY KEY ([ACTIONID]) >> > ) >> >> > 2009-04-24 16:10:30,630 INFO sqlalchemy.engine.base.Engine.0x...6110 >> > () >> > 2009-04-24 16:10:30,661 INFO sqlalchemy.engine.base.Engine.0x...6110 >> > COMMIT >> > 2009-04-24 16:10:30,693 INFO sqlalchemy.engine.base.Engine.0x...6110 >> > BEGIN >> > 2009-04-24 16:10:30,707 INFO sqlalchemy.engine.base.Engine.0x...6110 >> > INSERT INTO [ACTIONS] ([ACTIONID], [TITLE], [CMDLIN >> > E], [STDIN], [STARTINDIR], [PRIO]) VALUES (?, ?, ?, ?, ?, ?) >> > 2009-04-24 16:10:30,707 INFO sqlalchemy.engine.base.Engine.0x...6110 >> > ['500', None, 'sol', None, None, None] >> > 2009-04-24 16:10:30,723 INFO sqlalchemy.engine.base.Engine.0x...6110 >> > COMMIT >> > 2009-04-24 16:10:30,723 INFO sqlalchemy.engine.base.Engine.0x...6110 >> > SELECT TOP 2 [ACTIONS].[ACTIONID] AS [ACTIONS_ACTIO >> > NID], [ACTIONS].[TITLE] AS [ACTIONS_TITLE], [ACTIONS].[CMDLINE] AS >> > [ACTIONS_CMDLINE], [ACTIONS].[STDIN] AS [ACTIONS_STDI >> > N], [ACTIONS].[STARTINDIR] AS [ACTIONS_STARTINDIR], [ACTIONS].[PRIO] >> > AS [ACTIONS_PRIO] >> > FROM [ACTIONS] >> > WHERE [ACTIONS].[ACTIONID] = ? >> > 2009-04-24 16:10:30,740 INFO sqlalchemy.engine.base.Engine.0x...6110 >> > ['500'] >> >> > Michael Trier >> >http://michaeltrier.com > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---
