I have a problem deleting a Consevent instance and get the exception shown further below.
Relevant part of my model: class Consevent(Base): __table__ = sa.Table(u'consevent', metadata, sa.Column(u'conseventid', sa.Integer(), sa.Sequence('gen_consevent_conseventid'), primary_key=True, nullable=False), sa.Column(u'description', sa.String(length=25, convert_unicode=False)), sa.Column(u'conseventdate', sa.DateTime(timezone=False)), sa.Column(u'fk_reasonid', sa.Integer(), sa.ForeignKey(u'reason_ls.reasonid')), sa.Column(u'created', sa.Date()), sa.Column(u'updated', sa.Date()), sa.Column(u'notes', sa.TEXT(length=32000, convert_unicode=True)), ) reason_ls = sao.relation(Reason_Ls) conseventgl = sao.relation('Conseventgl', cascade="all, delete, delete-orphan", backref='conseventgl') conseventit = sao.relation('Conseventit', cascade="all, delete, delete-orphan", backref='conseventit') conseventmu = sao.relation('Conseventmu', cascade="all, delete, delete-orphan", backref='consevent') vconseventmu = sao.relation('Vconseventmu', backref='consevent', passive_deletes=True) class Vconseventmu(Base): # note that this is a view in the Firebird SQL db __table__ = sa.Table(u'vconseventmu', metadata, sa.Column(u'conseventmuid', sa.Integer(), sa.ForeignKey(u'conseventmu.conseventmuid'), primary_key=True), sa.Column(u'name', sa.String(length=50, convert_unicode=False)), sa.Column(u'itemtype', sa.String(length=1, convert_unicode=False)), sa.Column(u'description', sa.String(length=50, convert_unicode=False)), sa.Column(u'created', sa.Date()), sa.Column(u'updated', sa.Date()), sa.Column(u'fk_conseventid', sa.Integer(), sa.ForeignKey(u'consevent.conseventid')), sa.Column(u'fk_ingrid', sa.Integer(), sa.ForeignKey(u'ingr_ls.ingrid')), sa.Column(u'fk_recipeid', sa.Integer(), sa.ForeignKey(u'recipe.recipeid')), sa.Column(u'fk_courseid', sa.Integer(), sa.ForeignKey(u'course_ls.courseid')), sa.Column(u'fk_cbbottleid', sa.Integer(), sa.ForeignKey(u'cbbottle.cbbottleid')), ) ingr_ls = sao.relation(Ingr_Ls) recipe = sao.relation(Recipe) course_ls = sao.relation(Course_Ls) cbbottle = sao.relation(Cbbottle) To delete a consevent I do: for dbitem in self.dbItem.conseventit: # clear bottag table foreign key for consumption utils.BottleTagsClearConsumption(self.Getds(), dbitem.consumption) self.Getds().flush() self.Getds().delete(self.dbItem) self.dbItem is an instance of Consevent. Can anyone see what I am doing wrong. Werner **** Mon Sep 01 16:36:24 2008 **** Version: 3.0.416.1 **** wxV: 2.8.8.1 (msw-unicode) ***** Traceback (most recent call last): File "C:\Dev\twcb\Program\dialogconsevent.py", line 752, in OnDeleteButton if self.DeleteConsEvent(): File "C:\Dev\twcb\Program\dialogconsevent.py", line 797, in DeleteConsEvent self.Getds().commit() File "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta3-py2.5.egg\sqlalchemy\orm\session.py", line 663, in commit self.transaction.commit() File "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta3-py2.5.egg\sqlalchemy\orm\session.py", line 376, in commit self._prepare_impl() File "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta3-py2.5.egg\sqlalchemy\orm\session.py", line 360, in _prepare_impl self.session.flush() File "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta3-py2.5.egg\sqlalchemy\orm\session.py", line 1409, in flush flush_context.execute() File "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta3-py2.5.egg\sqlalchemy\orm\unitofwork.py", line 265, in execute UOWExecutor().execute(self, tasks) File "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta3-py2.5.egg\sqlalchemy\orm\unitofwork.py", line 753, in execute self.execute_save_steps(trans, task) File "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta3-py2.5.egg\sqlalchemy\orm\unitofwork.py", line 768, in execute_save_steps self.save_objects(trans, task) File "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta3-py2.5.egg\sqlalchemy\orm\unitofwork.py", line 759, in save_objects task.mapper._save_obj(task.polymorphic_tosave_objects, trans) File "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta3-py2.5.egg\sqlalchemy\orm\mapper.py", line 1182, in _save_obj c = connection.execute(statement.values(value_params), params) File "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta3-py2.5.egg\sqlalchemy\engine\base.py", line 848, in execute return Connection.executors[c](self, object, multiparams, params) File "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta3-py2.5.egg\sqlalchemy\engine\base.py", line 899, 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.5.0beta3-py2.5.egg\sqlalchemy\engine\base.py", line 911, in _execute_compiled self.__execute_raw(context) File "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta3-py2.5.egg\sqlalchemy\engine\base.py", line 920, in __execute_raw self._cursor_execute(context.cursor, context.statement, context.parameters[0], context=context) File "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta3-py2.5.egg\sqlalchemy\engine\base.py", line 964, in _cursor_execute self._handle_dbapi_exception(e, statement, parameters, cursor) File "c:\python25\lib\site-packages\sqlalchemy-0.5.0beta3-py2.5.egg\sqlalchemy\engine\base.py", line 946, in _handle_dbapi_exception raise exc.DBAPIError.instance(statement, parameters, e, connection_invalidated=is_disconnect) ProgrammingError: (ProgrammingError) (-150, 'isc_dsql_prepare: \n cannot update read-only view VCONSEVENTMU') 'UPDATE vconseventmu SET fk_conseventid=? WHERE vconseventmu.conseventmuid = ?' [None, 3] --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---