Example #1
0
 private function deleteSimpleFromSelfAndChildren()
 {
     $connection = Application::getInstance()->getConnection();
     $objectId = (int) $this->object->getId();
     $simpleTable = SimpleRightTable::getTableName();
     if ($this->object instanceof File) {
         $sql = "DELETE FROM {$simpleTable} WHERE OBJECT_ID = {$objectId}";
     } else {
         $pathTable = ObjectPathTable::getTableName();
         if ($connection instanceof MysqlCommonConnection || $connection instanceof MssqlConnection) {
             $sql = "DELETE sr FROM {$simpleTable} sr\n\t\t\t\t\t\t\tJOIN {$pathTable} path ON path.OBJECT_ID = sr.OBJECT_ID\n\t\t\t\t\t\tWHERE path.PARENT_ID = {$objectId}\n\t\t\t\t";
         } elseif ($connection instanceof OracleConnection) {
             $sql = "DELETE FROM {$simpleTable}\n\t\t\t\t\t\tWHERE ID IN (\n\t\t\t\t\t\t\tSELECT sr.ID FROM {$simpleTable} sr\n\t\t\t\t\t\t\t\tJOIN {$pathTable} path ON path.OBJECT_ID = sr.OBJECT_ID\n\t\t\t\t\t\t\tWHERE path.PARENT_ID = {$objectId}\n\t\t\t\t\t\t)\n\t\t\t\t";
         }
     }
     $connection->queryExecute($sql);
 }