the engine does not connect until first used, in this case when you've called "all()" on a Query. If you want to force a connection at a specific point, say engine.connect().
On Jul 21, 2008, at 7:13 AM, Werner F. Bruhin wrote: > > Can someone point out to me what I am doing wrong that I can not catch > this exception: > > **** Mon Jul 21 11:56:59 2008 **** Version: 3.0.399.1 **** wxV: > 2.8.8.0 (msw-unicode) ***** > Traceback (most recent call last): > File "twcb.py", line 1136, in <module> > File "twcb.py", line 1132, in main > File "wx\_core.pyo", line 7912, in __init__ > File "wx\_core.pyo", line 7487, in _BootstrapApp > File "twcb.py", line 272, in OnInit > File "sqlalchemy\orm\query.pyo", line 413, in get > File "sqlalchemy\orm\query.pyo", line 1179, in _get > File "sqlalchemy\orm\query.pyo", line 973, in all > File "sqlalchemy\orm\query.pyo", line 1038, in __iter__ > File "sqlalchemy\orm\query.pyo", line 1041, in _execute_and_instances > File "sqlalchemy\orm\session.pyo", line 730, in execute > File "sqlalchemy\orm\session.pyo", line 697, in __connection > File "sqlalchemy\orm\session.pyo", line 317, in _connection_for_bind > File "sqlalchemy\engine\base.pyo", line 1243, in contextual_connect > File "sqlalchemy\pool.pyo", line 165, in connect > File "sqlalchemy\pool.pyo", line 323, in __init__ > File "sqlalchemy\pool.pyo", line 180, in get > File "sqlalchemy\pool.pyo", line 615, in do_get > File "sqlalchemy\pool.pyo", line 145, in create_connection > File "sqlalchemy\pool.pyo", line 217, in __init__ > File "sqlalchemy\pool.pyo", line 280, in __connect > File "sqlalchemy\engine\strategies.pyo", line 80, in connect > OperationalError: (OperationalError) (-902, 'isc_attach_database: > \n I/O error for file "C:/Spiritissimo/twcb.fdb"\n Error while > trying to open file\n The process cannot access the file because it > is being used by another process. ') None None > > > Line 272 in twcb.py is: > dbConnected = self.ConnectDB() > > def ConnectDB(self): > """Connect to the database > """ > ... removed some lines which get config information > try: > > ... removed some lines which show passwords, which basically setup > "dburl" variable > debug = self.twcbConfig.Read('SQLLog', 'False') > if debug == 'True': > # twcbConfig entries are strings > import logging > logging.basicConfig(filename=self.sqllog.name) > logger = logging.getLogger('sqlalchemy.engine') > # following could be expanded > # see > http://www.sqlalchemy.org/docs/04/dbengine.html#dbengine_logging > logger.setLevel(logging.DEBUG) > > self.engine = db.sa.create_engine(dburl, encoding='utf8', > echo=False) > self.Session = db.sao.sessionmaker() > self.Session.configure(bind=self.engine) > self.ds = self.Session() > return True > > except Exception, error: > wx.MessageBox(str(error), _(u'DB connection failed')) > return False > > > Do I have to wrap the call to self.ConnectDB into a try/except to make > sure to catch the exception? > > I also tried using a more specific catch, but with no success either: > > except db.saexc.OperationalError, error: > wx.MessageBox(str(error), _(u'DB connection failed - > Operational error')) > return False > > > Thanks for any hints on this. > Werner > > P.S. > The database is Firebird SQL 2.1 with kinterbasdb 3.x > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---