function store($fieldid = 0, $updateNulls = false)
 {
     global $_CB_database;
     $this->fieldid = $fieldid;
     $fieldHandler = new cbFieldHandler();
     $sql = 'SELECT COUNT(*) FROM #__comprofiler_fields WHERE fieldid = ' . (int) $this->fieldid;
     $_CB_database->SetQuery($sql);
     $total = $_CB_database->LoadResult();
     if ($total > 0) {
         // existing record:
         $ret = $this->_db->updateObject($this->_tbl, $this, $this->_tbl_key, $updateNulls);
         // escapes values
         if ($ret) {
             $ret = $fieldHandler->adaptSQL($this);
         }
     } else {
         // new record:
         $sql = 'SELECT COUNT(*) FROM #__comprofiler_fields WHERE name = ' . $_CB_database->Quote($this->name);
         $_CB_database->SetQuery($sql);
         if ($_CB_database->LoadResult() > 0) {
             $this->_error = "The field name " . $this->name . " is already in use!";
             return false;
         }
         $sql = 'SELECT MAX(ordering) FROM #__comprofiler_fields WHERE tabid = ' . (int) $this->tabid;
         $_CB_database->SetQuery($sql);
         $max = $_CB_database->LoadResult();
         $this->ordering = $max + 1;
         $this->fieldid = null;
         $this->table = $fieldHandler->getMainTable($this);
         $this->tablecolumns = implode(',', $fieldHandler->getMainTableColumns($this));
         $ret = $fieldHandler->adaptSQL($this);
         if ($ret) {
             $ret = $this->_db->insertObject($this->_tbl, $this, $this->_tbl_key);
             // do inserObject last to keep insertId intact
         }
     }
     if (!$ret) {
         $this->_error = get_class($this) . "::store failed: " . addslashes(str_replace("\n", '\\n', $this->_error . ' ' . $this->_db->getErrorMsg()));
         return false;
     } else {
         return true;
     }
 }