/** * Commit changes to the main data set. This is performed by save() * and should not be done manually in most cases. */ function commit() { if (!is_null($this->changeset)) { $core =& $this->getCore(); if (!is_array($core) && !is_object($core)) { $pks = $this->storage_method->getPrimaryKeys(); $this->set(array($pks[0] => $core)); } foreach (array_keys($this->changeset) as $key) { parent::setref($this->changeset[$key], $key); } } $this->changeset = NULL; }
/** * Remove an object. * @param ChunsuObject $removeme The object to remove. * @param DataSource $source The data source to remove the object from. * @return bool TRUE is successful, FALSE otherwise. */ function remove(&$removeme, $source) { parent::remove($removeme, $source); $gen = new SQLGenerator($removeme->getCore()); $removequeries = $gen->delete($this->config); foreach ($removequeries as $rq) { $cursor =& $source->query($rq); $rv = $cursor->getNext(); if (!$rv) { LogError("remove query failed! removing " . print_r($removeme, TRUE)); return FALSE; } } $rv = $cursor->getNext(); if (!$rv) { LogError("Remove failed! Removing " . print_r($removeme, TRUE)); return FALSE; } if ($rows = $cursor->get('affected-rows') > 1) { LogWarning("{$rows} records deleted removing " . print_r($removeme, TRUE)); } $removeme->is_new = $removeme->config->get('create-on-save'); return TRUE; }