Ejemplo n.º 1
0
 def syncDB(self):
     """同步到数据库
     """
     state = self.get('_state')
     tablename = self._name.split(':')[0]
     if state == MMODE_STATE_ORI:
         return
     elif state == MMODE_STATE_NEW:
         props = self.get('data')
         props = self.dumps(props)
         pk = self.get('_pk')
         result = util.InsertIntoDB(tablename, props)
     elif state == MMODE_STATE_UPDATE:
         props = self.get('data')
         pk = self.get('_pk')
         props = self.dumps(props)
         prere = {pk: props.get(pk)}
         del(props[pk])
         util.UpdateWithDict(tablename, props, prere)
         result = True
     else:
         pk = self.get('_pk')
         props = self.get('data')
         props = self.dumps(props)
         prere = {pk: props.get(pk)}
         result = util.DeleteFromDB(tablename, prere)
     if result:
         MemObject.update(self, '_state', MMODE_STATE_ORI)
Ejemplo n.º 2
0
    def syncDB(self):
        """同步到数据库
        """

        state = self.get('_state')
        tablename = self._name.split(':')[0]
        if state == MMODE_STATE_ORI:
            return
        elif state == MMODE_STATE_NEW:
            props = self.get('data')
            pk = self.get('_pk')
            util.InsertIntoDB(tablename, props)
        #             result = util.InsertIntoDB(tablename, props)
        elif state == MMODE_STATE_UPDATE:
            props = self.get('data')
            pk = self.get('_pk')
            prere = {pk: props.get(pk)}
            util.UpdateWithDict(tablename, props, prere)
        #             result = True
        else:
            pk = self.get('_pk')
            props = self.get('data')
            if props:
                prere = {pk: props.get(pk)}
                util.DeleteFromDB(tablename, prere)
                #             result = util.DeleteFromDB(tablename, prere)
                self.mdelete()
            else:
                logging.error('syncDB pk:%s is not data' % str(pk))

        #         logger.debug('syncDB,tbname:%s,%s:%s' %(tablename, pk, props.get(pk)))
        #         if result:  平台缺陷,2014-6-20修改 http://bbs.9miao.com/thread-49154-1-1.html
        if state != MMODE_STATE_DEL:
            MemObject.update(self, '_state', MMODE_STATE_ORI)
Ejemplo n.º 3
0
 def syncDB(self, state=MMODE_STATE_UPDATE):
     """同步到数据库
     """
     tablename = self._name.split(':')[0]
     if state == MMODE_STATE_NEW:
         props = self.getData()
         pk = self._pk
         result = util.InsertIntoDB(tablename, props)
     elif state == MMODE_STATE_UPDATE:
         props = self.getData()
         pk = self._pk
         prere = {pk: props.get(pk)}
         sql = util.UpdateWithDictSQL(tablename, props, prere)
         DBPub().send((tablename, sql))
         result = True
     else:
         pk = self._pk
         props = self.getData()
         prere = {pk: props.get(pk)}
         result = util.DeleteFromDB(tablename, prere)
     return result
Ejemplo n.º 4
0
 def new(self,data):
     """创建一个新的对象
     """
     incrkey = self.incrkey
     tablename = self.name
     if incrkey:
         result = util.InsertIntoDBAndReturnID(tablename, data)
         data[incrkey] = result
         pk = data.get(self.pk)
         if pk is None:
             raise PKValueError(data)
         mm = MemModel(self.name+':%s'%pk,self.pk,data=data,**self.kw)
         setattr(mm,incrkey,pk)
     else:
         pk = data.get(self.pk)
         result = util.InsertIntoDB(tablename, data)
         if not result:
             raise util.SQLError()
         mm = MemModel(self.name+':%s'%pk,self.pk,data=data,**self.kw)
     mm.insert()
     return mm
Ejemplo n.º 5
0
 def new(self, data):
     """创建一个新的对象
     """
     incrkey = self.incrkey
     tablename = self._name
     if incrkey:
         result = util.InsertIntoDBAndReturnID(tablename, data)
         data[incrkey] = result[0]
         pk = data.get(self.pk)
         if pk is None:
             raise PKValueError(data)
         mm = MMode(self._name + ':%s' % pk,
                    self.pk,
                    data=data,
                    fk=self._fk,
                    timeout=self.timeout)
     else:
         pk = data.get(self.pk)
         result = util.InsertIntoDB(tablename, data)
         if not result:
             raise util.SQLError()
         mm = MMode(self._name + ':%s' % pk,
                    self.pk,
                    data=data,
                    fk=self._fk,
                    timeout=self.timeout)
     mm.insert()
     if self._fk:
         fk = data.get(self._fk, 0)
         name = '%s_fk:%s' % (self._name, fk)
         fkmm = MFKMode(name)
         pklist = fkmm.get('pklist')
         if pklist is None:
             pklist = self.getAllPkByFk(fk)
         pklist.append(pk)
         fkmm.update('pklist', pklist)
     return mm
Ejemplo n.º 6
0
 def syncDB(self):
     """同步到数据库
     """
     state = self.get('_state')
     tablename = self._name.split(':')[0]
     if state == 0:
         return
     elif state == 1:
         props = self.get('data')
         pk = self.get('_pk')
         result = util.InsertIntoDB(tablename, props)
     elif state == 2:
         props = self.get('data')
         pk = self.get('_pk')
         prere = {pk: props.get(pk)}
         util.UpdateWithDict(tablename, props, prere)
         result = True
     else:
         pk = self.get('_pk')
         props = self.get('data')
         prere = {pk: props.get(pk)}
         result = util.DeleteFromDB(tablename, prere)
     if result:
         MemObject.update(self, '_state', 0)