Пример #1
0
 /**
  * 删除所有记录及关联的数据
  *
  * @return boolean
  */
 function removeAllWithLinks()
 {
     $this->dbo->startTrans();
     // 处理关联数据表
     if ($this->autoLink) {
         foreach (array_keys($this->links) as $linkKey) {
             $link =& $this->links[$linkKey];
             /* @var $link FLEA_Db_TableLink */
             switch ($link->type) {
                 case MANY_TO_MANY:
                     /* @var $link FLEA_Db_ManyToManyLink */
                     $link->init();
                     $sql = "DELETE FROM {$link->qjoinTable}";
                     break;
                 case HAS_ONE:
                 case HAS_MANY:
                     $link->init();
                     $sql = "DELETE FROM {$link->assocTDG->qtableName}";
                     break;
                 default:
                     continue;
             }
             if ($this->dbo->execute($sql) == false) {
                 $this->dbo->completeTrans(false);
                 return false;
             }
         }
     }
     $sql = "DELETE FROM {$this->qtableName}";
     if ($this->dbo->execute($sql) == false) {
         $this->dbo->completeTrans(false);
         return false;
     }
     // 提交事务
     $this->dbo->completeTrans();
     return true;
 }