I am getting sometimes the following exception with rc3 which I did not 
see with rc2 when I do something like this:


engine = sa.create_engine(dburl, encoding='utf8', echo=False)
# connect to the database
##connection = engine.connect()
Session = sao.sessionmaker()
Session.configure(bind=engine)
##Session.configure(bind=connection)
session = Session()
query = session.query(db.Preferences).get(1)
lang = session.query(db.Language).get(2)
query.language = lang
session.commit()

Am I doing which I should not, which now causes this or ...?

Best regards
Werner

Following the traceback and part of my model.

Traceback (most recent call last):
  File "saTest.py", line 56, in <module>
    session.commit()
  File 
"c:\python25\lib\site-packages\sqlalchemy-0.5.0rc3-py2.5.egg\sqlalchemy\orm\session.py",
 
line 670, in commit
    self.transaction.commit()
  File 
"c:\python25\lib\site-packages\sqlalchemy-0.5.0rc3-py2.5.egg\sqlalchemy\orm\session.py",
 
line 375, in commit
    self._prepare_impl()
  File 
"c:\python25\lib\site-packages\sqlalchemy-0.5.0rc3-py2.5.egg\sqlalchemy\orm\session.py",
 
line 359, in _prepare_impl
    self.session.flush()
  File 
"c:\python25\lib\site-packages\sqlalchemy-0.5.0rc3-py2.5.egg\sqlalchemy\orm\session.py",
 
line 1354, in flush
    self._flush(objects)
  File 
"c:\python25\lib\site-packages\sqlalchemy-0.5.0rc3-py2.5.egg\sqlalchemy\orm\session.py",
 
line 1424, in _flush
    flush_context.execute()
  File 
"c:\python25\lib\site-packages\sqlalchemy-0.5.0rc3-py2.5.egg\sqlalchemy\orm\unitofwork.py",
 
line 260, in execute
    UOWExecutor().execute(self, tasks)
  File 
"c:\python25\lib\site-packages\sqlalchemy-0.5.0rc3-py2.5.egg\sqlalchemy\orm\unitofwork.py",
 
line 723, in execute
    self.execute_save_steps(trans, task)
  File 
"c:\python25\lib\site-packages\sqlalchemy-0.5.0rc3-py2.5.egg\sqlalchemy\orm\unitofwork.py",
 
line 738, in execute_save_steps
    self.save_objects(trans, task)
  File 
"c:\python25\lib\site-packages\sqlalchemy-0.5.0rc3-py2.5.egg\sqlalchemy\orm\unitofwork.py",
 
line 729, in save_objects
    task.mapper._save_obj(task.polymorphic_tosave_objects, trans)
  File 
"c:\python25\lib\site-packages\sqlalchemy-0.5.0rc3-py2.5.egg\sqlalchemy\orm\mapper.py",
 
line 1318, in _save_obj
    rows += c.rowcount
  File 
"c:\python25\lib\site-packages\sqlalchemy-0.5.0rc3-py2.5.egg\sqlalchemy\engine\base.py",
 
line 1397, in rowcount
    return self.context.get_rowcount()
  File 
"c:\python25\lib\site-packages\sqlalchemy-0.5.0rc3-py2.5.egg\sqlalchemy\engine\default.py",
 
line 279, in get_rowcount
    return self.cursor.rowcount
  File 
"c:\python25\lib\site-packages\sqlalchemy-0.5.0rc3-py2.5.egg\sqlalchemy\pool.py",
 
line 466, in __getattr__
    return getattr(self.cursor, key)
kinterbasdb.ProgrammingError: (0, 'Invalid cursor state.  The cursor 
must be open to perform this operation.')

The relevant part of my model are:
class BaseExt(object):
    def __repr__(self):
        return "%s(%s)" % (
                 (self.__class__.__name__),
                 ', '.join(["%s=%r" % (key, getattr(self, key))
                            for key in sorted(self.__dict__.keys())
                            if not key.startswith('_')]))

Base = sad.declarative_base(cls=BaseExt)
metadata = Base.metadata


class Language(Base):
    __table__ = sa.Table(u'language', metadata,
    sa.Column(u'langid', sa.Integer(), 
sa.Sequence('gen_language_langid'), primary_key=True, nullable=False),
    sa.Column(u'name', sa.String(length=50, convert_unicode=False), 
nullable=False),
    sa.Column(u'locales', sa.String(length=2, convert_unicode=False)),
    sa.Column(u'created', sa.Date()),
    sa.Column(u'updated', sa.Date()),
    )

class Preferences(Base):
    __table__ = sa.Table(u'preferences', metadata,
    sa.Column(u'prefid', sa.Integer(), 
sa.Sequence('gen_preferences_prefid'), primary_key=True, nullable=False),
...
    sa.Column(u'fk_langid', sa.Integer(), 
sa.ForeignKey(u'language.langid'), nullable=False),
...
    )

    cellar = sao.relation(Cellar)
    language = sao.relation(Language)
    reason_ls = sao.relation(Reason_Ls)
    displayformats = sao.relation(Displayformats)
    measure_ls = sao.relation(Measure_Ls)
    ingr_ls = sao.relation(Ingr_Ls)
    tastingsys = sao.relation(Tastingsys)
    imagetype_ls = sao.relation(Imagetype_Ls, primaryjoin=
            ('Preferences.fk_imagetypeid==Imagetype_Ls.imagetypeid'))
    filters = sao.relation(Filters)
    ratingtype_ls = sao.relation(Ratingtype_Ls)
    container_ls = sao.relation(Container_Ls)
    imagetype_ls_rec = sao.relation(Imagetype_Ls, primaryjoin=
            ('Preferences.rec_fk_imagetypeid==Imagetype_Ls.imagetypeid'))



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