Hi,
I am working on a wxPython application that saves data to various
tables in our MS SQL Server 2000. I connect to one table and get data
using a session. This works great. I then do a session.close() and
then a conn.close() where conn = engine.connect(). This seems to work
as expected as well. The problem happens when I connect to the second
table. I get the data from the second table just fine, but when I try
to update it using my 2nd session object, I get the following error:
Traceback (most recent call last):
File "\\debianis\loginscript$\PythonPackages\Development\Timesheet_sa
\ts_worksheet_MT.py", line 689, in onClose
session.flush()
File "c:\python25\lib\site-packages\sqlalchemy-0.4.7-py2.5.egg
\sqlalchemy\orm\session.py", line 789, in flush
self.uow.flush(self, objects)
File "c:\python25\lib\site-packages\sqlalchemy-0.4.7-py2.5.egg
\sqlalchemy\orm\unitofwork.py", line 233, in flush
flush_context.execute()
File "c:\python25\lib\site-packages\sqlalchemy-0.4.7-py2.5.egg
\sqlalchemy\orm\unitofwork.py", line 445, in execute
UOWExecutor().execute(self, tasks)
File "c:\python25\lib\site-packages\sqlalchemy-0.4.7-py2.5.egg
\sqlalchemy\orm\unitofwork.py", line 930, in execute
self.execute_save_steps(trans, task)
File "c:\python25\lib\site-packages\sqlalchemy-0.4.7-py2.5.egg
\sqlalchemy\orm\unitofwork.py", line 945, in execute_save_steps
self.save_objects(trans, task)
File "c:\python25\lib\site-packages\sqlalchemy-0.4.7-py2.5.egg
\sqlalchemy\orm\unitofwork.py", line 936, in save_objects
task.mapper._save_obj(task.polymorphic_tosave_objects, trans)
File "c:\python25\lib\site-packages\sqlalchemy-0.4.7-py2.5.egg
\sqlalchemy\orm\mapper.py", line 1144, in _save_obj
c = connection.execute(statement.values(value_params), params)
File "c:\python25\lib\site-packages\sqlalchemy-0.4.7-py2.5.egg
\sqlalchemy\engine\base.py", line 844, in execute
return Connection.executors[c](self, object, multiparams, params)
File "c:\python25\lib\site-packages\sqlalchemy-0.4.7-py2.5.egg
\sqlalchemy\engine\base.py", line 895, in execute_clauseelement
return self._execute_compiled(elem.compile(dialect=self.dialect,
column_keys=keys, inline=len(params) > 1), distilled_params=params)
File "c:\python25\lib\site-packages\sqlalchemy-0.4.7-py2.5.egg
\sqlalchemy\engine\base.py", line 907, in _execute_compiled
self.__execute_raw(context)
File "c:\python25\lib\site-packages\sqlalchemy-0.4.7-py2.5.egg
\sqlalchemy\engine\base.py", line 916, in __execute_raw
self._cursor_execute(context.cursor, context.statement,
context.parameters[0], context=context)
File "c:\python25\lib\site-packages\sqlalchemy-0.4.7-py2.5.egg
\sqlalchemy\engine\base.py", line 960, in _cursor_execute
self._handle_dbapi_exception(e, statement, parameters, cursor)
File "c:\python25\lib\site-packages\sqlalchemy-0.4.7-py2.5.egg
\sqlalchemy\engine\base.py", line 942, in _handle_dbapi_exception
raise exceptions.DBAPIError.instance(statement, parameters, e,
connection_invalidated=is_disconnect)
sqlalchemy.exceptions.DatabaseError: (DatabaseError) internal error:
None 'UPDATE [tbl_Acct_Prefs] SET pref_value=%(pref_value)s WHERE
[tbl_Acct_Prefs].[empID] = %(tbl_Acct_Prefs_empID)s AND
[tbl_Acct_Prefs].pref_name = %
(tbl_Acct_Prefs_pref_name)s' {'pref_value': u'4',
'tbl_Acct_Prefs_pref_name': 'last_payPeriod', 'tbl_Acct_Prefs_empID':
258}
To get the data, I do the following:
pref = session.query(Acct_Prefs).filter_by(empID=self.emp_id,
pref_name='last_payPeriod').first()
Then I change a value like this:
pref.pref_value = someValue
Finally, I do a session.flush() and session.commit(). I've tried using
just a commit(), but I get the same error. Since I can run this second
session by itself in IDLE, I think the 1st session or connection or
something is somehow messing up the second one. Any ideas on what is
going on would be great. I'm still pretty green with SA, by the way.
I am developing on Windows XP, Python 2.5.2 and using SqlAlchemy
0.4.7. I can upgrade if you guys think that's the issue.
Thanks,
Mike
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---