Beispiel #1
0
 def _query(self, instance, query, args):
     c_tool = getToolByName(instance, TOOL_NAME)
     connection_id = c_tool.getConnFor(instance)
     method = SQLMethod(instance)
     method.edit(connection_id, ' '.join(args.keys()), query)
     query, result = method(test__=1, **args)
     return result
 def _query(self, instance, query, args):
     c_tool = getToolByName(instance, TOOL_NAME)
     connection_id = c_tool.getConnFor(instance)
     method = SQLMethod(instance)
     method.edit(connection_id, ' '.join(args.keys()), query)
     query, result = method(test__=1, **args)
     return result
Beispiel #3
0
 def cleanupInstance(self, instance, item=None, container=None):
     if (self.is_cleaned(instance)
             or getattr(instance, '_at_is_fake_instance', None)):
         # duh, we don't need to be cleaned twice
         return
     # the object is being deleted. remove data from sql.  but
     # first, made a temporary copy of the field values in case we
     # are being moved
     fields = instance.Schema().fields()
     fields = [
         f for f in fields if IObjectField.providedBy(f)
         and f.getStorage().__class__ is self.__class__
     ]
     temps = {}
     for f in fields:
         temps[f.getName()] = f.get(instance)
     setattr(instance, '_v_%s_temps' % self.getName(), temps)
     # now, remove data from sql
     c_tool = getToolByName(instance, TOOL_NAME)
     connection_id = c_tool.getConnFor(instance)
     args = {}
     args['table'] = instance.portal_type
     args['UID'] = instance.UID()
     # args['db_encoding']=kwargs.get('db_encoding',None)
     method = SQLMethod(instance)
     method.edit(connection_id, ' '.join(args.keys()), self.query_delete)
     try:
         query, result = method(test__=1, **args)
     except ConflictError:
         raise
     except:
         # dunno what could happen here raise
         # SQLCleanupException(msg)
         raise BeforeDeleteException
     try:
         instance.__cleaned += (self.getName(), )
     except AttributeError:
         instance.__cleaned = (self.getName(), )
     try:
         del instance.__initialized
     except (AttributeError, KeyError):
         pass
 def cleanupInstance(self, instance, item=None, container=None):
     if (self.is_cleaned(instance) or
             getattr(instance, '_at_is_fake_instance', None)):
         # duh, we don't need to be cleaned twice
         return
     # the object is being deleted. remove data from sql.  but
     # first, made a temporary copy of the field values in case we
     # are being moved
     fields = instance.Schema().fields()
     fields = [f for f in fields if IObjectField.providedBy(f)
               and f.getStorage().__class__ is self.__class__]
     temps = {}
     for f in fields:
         temps[f.getName()] = f.get(instance)
     setattr(instance, '_v_%s_temps' % self.getName(), temps)
     # now, remove data from sql
     c_tool = getToolByName(instance, TOOL_NAME)
     connection_id = c_tool.getConnFor(instance)
     args = {}
     args['table'] = instance.portal_type
     args['UID'] = instance.UID()
     # args['db_encoding']=kwargs.get('db_encoding',None)
     method = SQLMethod(instance)
     method.edit(connection_id, ' '.join(args.keys()), self.query_delete)
     try:
         query, result = method(test__=1, **args)
     except ConflictError:
         raise
     except:
         # dunno what could happen here raise
         # SQLCleanupException(msg)
         raise BeforeDeleteException
     try:
         instance.__cleaned += (self.getName(),)
     except AttributeError:
         instance.__cleaned = (self.getName(),)
     try:
         del instance.__initialized
     except (AttributeError, KeyError):
         pass