Ejemplo n.º 1
0
 /**
  * Build insert-sql
  * INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,....)
  *
  * @param BizDataObj $dataObj
  * @param array $joinValues array of join values
  * @return string Insert-SQL statement
  */
 public function buildInsertSQL($dataObj, $joinValues = null)
 {
     // generate column value pairs.
     $sqlFlds = $dataObj->m_BizRecord->getToSaveFields('CREATE');
     $dbInfo = BizSystem::configuration()->getDatabaseInfo($dataObj->m_Database);
     $dbType = $dbInfo["Driver"];
     $sql_col = "";
     $sql_val = "";
     $db = $dataObj->getDBConnection('WRITE');
     foreach ($sqlFlds as $fldobj) {
         $col = $fldobj->m_Column;
         // if Field Id has null value and Id is an identity type, remove the Id's column from the array
         if ($fldobj->m_Name == "Id" && $dataObj->m_IdGeneration == "Identity") {
             continue;
         }
         if ($fldobj->isLobField()) {
             // special value for blob/clob type
             $_val = $fldobj->getInsertLobValue($dbType);
         } else {
             $_val = $fldobj->getSqlValue();
             if ($_val == '' && $fldobj->m_ValueOnCreate != "") {
                 $_val = $fldobj->getValueOnCreate();
             }
         }
         //if (!$_val || $_val == '') continue;
         // modified by jixian for not ignore 0 value
         if ($_val === '') {
             continue;
         }
         $sql_col .= "`" . $col . "`, ";
         $sql_val .= $db->quote($_val) . ", ";
         //$sql_val .= QueryStringParam::formatQueryValue($_val). ", ";
     }
     // if joinValues is given then add join values in to the main table InsertSQL.
     if (is_array($joinValues)) {
         foreach ($joinValues as $joinColumn => $joinValue) {
             if (!$joinValue || $joinValue == '') {
                 continue;
             }
             $sql_col .= "`" . $joinColumn . "`, ";
             $sql_val .= "'" . $joinValue . "', ";
         }
     }
     $sql_col = substr($sql_col, 0, -2);
     $sql_val = substr($sql_val, 0, -2);
     $sql = "INSERT INTO  `" . $dataObj->m_MainTable . "` (" . $sql_col . ") VALUES (" . $sql_val . ")";
     return $sql;
 }
Ejemplo n.º 2
0
 /**
  * Remove record many to many
  *
  * @param BizDataObj $dataObj
  * @param array $recArr
  * @return boolean
  */
 private static function _removeRecordMtoM($dataObj, $recArr)
 {
     // delete a record on XTable
     $db = $dataObj->getDBConnection();
     //TODO: delete using XDataObj if XDataObj is defined
     $where = $dataObj->association["XColumn1"] . "='" . $dataObj->association["FieldRefVal"] . "'";
     $where .= " AND " . $dataObj->association["XColumn2"] . "='" . $recArr["Id"] . "'";
     $sql = "DELETE FROM " . $dataObj->association["XTable"] . " WHERE " . $where;
     try {
         Openbizx::$app->getLog()->log(LOG_DEBUG, "DATAOBJ", "Associate Delete Sql = {$sql}");
         $db->query($sql);
     } catch (Exception $e) {
         Openbizx::$app->getLog()->log(LOG_ERR, "DATAOBJ", "Query Error: " . $e->getMessage());
         throw new Openbizx\Data\Exception("Query Error: " . $e->getMessage());
         return false;
     }
     return true;
 }