[Zope] Using an arbitrary connection on a ZSQL Method
Andy McKay
andym@ActiveState.com
Thu, 10 May 2001 16:42:05 -0700
Just did a useful hack I wanted share...
Occasionally I find it useful to have one SQL Method that I can call with a
different DB connection, programatically. For example I have a test and a
live database. Using manage_editProperties each
time of course means writing a new copy of the object. The following patch
means that you can override the connection_id on the ZSQLMethod with
CONNECTION_ID in REQUEST.
This could be cleaned up a little of course but I found it useful in
conjunction with session management.
--- l:\lib\python\Shared\DC\ZRDB\DA.py Thu May 10 16:29:25 2001
+++ q:\lib\python\Shared\DC\ZRDB\DA.py Thu May 10 15:08:36 2001
@@ -457,11 +457,14 @@
if hasattr(self, 'REQUEST'): REQUEST=self.REQUEST
else: REQUEST={}
- try: dbc=getattr(self, self.connection_id)
+ if REQUEST is not None and REQUEST.has_key('CONNECTION_ID'): c_id =
REQ
UEST['CONNECTION_ID']
+ else: c_id = self.connection_id
+
+ try: dbc=getattr(self, c_id)
except AttributeError:
raise AttributeError, (
"The database connection <em>%s</em> cannot be found." % (
- self.connection_id))
+ c_id))
try: DB__=dbc()
except: raise 'Database Error', (
Cheers.
--
Andy McKay.