public function getTypeFields()
 {
     $tableName = MasterSQLUteis::decodeProperties(get_class($this));
     $query = $this->db->query("SELECT COLUMN_NAME, DATA_TYPE, NVL(DATA_SCALE,0) DATA_SCALE FROM USER_TAB_COLUMNS WHERE TABLE_NAME = '" . $tableName . "'");
     MasterSQLUteis::exception($this->db->error(), false);
     if ($query->num_rows() > 0) {
         $arrayObjects = $query->result();
         $array = array();
         foreach ($arrayObjects as $object) {
             $array[$object->COLUMN_NAME] = (object) array('dataType' => $object->DATA_TYPE, 'dataScale' => $object->DATA_SCALE);
         }
         return $array;
     } else {
         return false;
     }
 }
Esempio n. 2
0
 public function insert($array)
 {
     $class = new $this->className();
     if (isset($class->getMapping()['pk']) && isset($class->getMapping()['sequence'])) {
         $pk = $class->getMapping()['pk'];
         $sequence = $class->getMapping()['sequence'];
         $this->db->select($sequence . '.NEXTVAL AS SEQUENCE');
         $this->db->from('DUAL');
         $query = $this->db->get();
         MasterSQLUteis::exception($this->db->error(), false);
         $this->returnPk = $query->row()->SEQUENCE;
         $array[$pk] = $this->returnPk;
     }
     $array = (array) MasterSQLUteis::cast(new $this->className(), (object) $array);
     $array = MasterSQLUteis::decodeProperties($array);
     // /////
     // verifica se há campos customizados e os exclui do insert
     // ////
     $customFields = isset($class->getMapping()['customFields']) ? $class->getMapping()['customFields'] : false;
     if ($customFields) {
         $customFields = array_keys(MasterSQLUteis::decodeProperties($customFields));
         foreach ($customFields as $customField) {
             unset($array[$customField]);
         }
     }
     // /////
     foreach ($array as $key => $value) {
         if (MasterSQLUteis::isDate($value)) {
             $this->db->set($key, "to_date('" . $value . "','RRRR-MM-DD HH24:MI:SS')", FALSE);
         } else {
             $this->db->set($key, $value);
         }
     }
     $this->db->insert($this->table);
     $this->error = MasterSQLUteis::exception($this->db->error());
     $this->affectedRows = $this->db->affected_rows();
     if ($this->error) {
         $this->success = $this->error;
     } else {
         $this->success = true;
     }
     return $this->returnPk;
 }