/** * 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 = ""; 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 { if ($fldobj->m_ValueOnCreate != "") { $_val = $fldobj->getValueOnCreate(); } else { $_val = $fldobj->getSqlValue(); } } if (!$_val || $_val == '') { continue; } $sql_col .= $dataObj->getQuoted($col) . ", "; //$sql_val .= $_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 .= $dataObj->getQuoted($joinColumn) . ", "; $sql_val .= "'" . $joinValue . "', "; } } $sql_col = substr($sql_col, 0, -2); $sql_val = substr($sql_val, 0, -2); $sql = "INSERT INTO " . $dataObj->getQuoted($dataObj->m_MainTable) . " (" . $sql_col . ") VALUES (" . $sql_val . ")"; return $sql; }