| // +----------------------------------------------------------------------+ // // $Id: MDB2_nonstandard_oci8.php,v 1.5 2007/03/04 22:28:23 quipo Exp $ class MDB2_nonstandard_oci8 extends MDB2_nonstandard { var $trigger_body = ''; var $when_clause = 'new.id > 0'; function createTrigger($trigger_name, $table_name) { $this->trigger_body = 'BEGIN INSERT INTO '.$table_name .' (id, somename, somedescription) VALUES' .' (:new.id+1, :new.somename, :new.somedescription); END '. $trigger_name .';'; $query = 'CREATE OR REPLACE TRIGGER '. $trigger_name .' AFTER UPDATE ON '. $table_name .' FOR EACH ROW WHEN ('.$this->when_clause.') ' . $this->trigger_body; return $this->db->exec($query); } function checkTrigger($trigger_name, $table_name, $def) { parent::checkTrigger($trigger_name, $table_name, $def); $this->test->assertEquals($this->trigger_body, $def['trigger_body']); $this->test->assertEquals($this->when_clause, $def['when_clause']); } function dropTrigger($trigger_name, $table_name) { return $this->db->exec('DROP TRIGGER '.$trigger_name); } function createFunction($name) { $query = 'CREATE FUNCTION '.$name.'(a IN INT, b IN INT) RETURN INT AS BEGIN RETURN a + b; END;'; return $this->db->exec($query); } } ?>