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
-~----------~----~----~----~------~----~------~--~---

Reply via email to