function gSQLRowCount_int($sqlHead, $sqlFrom, $sqlWhere, $sqlGroupBy, $sqlHaving, $where, $having) { global $conn; global $bSubqueriesSupported; $strWhere = whereAdd($sqlWhere, $where); if (strlen($strWhere)) { $strWhere = " where " . $strWhere . " "; } if (strlen($sqlGroupBy)) { $countstr = "select count(*) from (" . gSQLWhere_having($sqlHead, $sqlFrom, $sqlWhere, $sqlGroupBy, $sqlHaving, $where, $having) . ") a"; } else { $countstr = "select count(*) " . $sqlFrom . $strWhere; } $countrs = db_query($countstr, $conn); $countdata = db_fetch_numarray($countrs); return $countdata[0]; }
//Preparation view values // get current values and show edit controls $dispFieldAlias = ""; $data = 0; if (count($keys)) { $where = KeyWhere($keys); $sqlHead = $gQuery->HeadToSql(); $sqlGroupBy = $gQuery->GroupByToSql(); $oHaving = $gQuery->Having(); $sqlHaving = $oHaving->toSql($gQuery); $dispFieldAlias = postvalue('dispFieldAlias'); $dispField = postvalue('dispField'); if ($dispFieldAlias) { $sqlHead .= ", " . $dispField . " as " . AddFieldWrappers($dispFieldAlias) . " "; } $strSQL = gSQLWhere_having($sqlHead, $gsqlFrom, $gsqlWhereExpr, $sqlGroupBy, $sqlHaving, $where, ''); LogInfo($strSQL); $rs = db_query($strSQL, $conn); $data = db_fetch_array($rs); } if (!$data) { $data = $avalues; $HaveData = false; } //check if correct values added $keylink = ""; $keylink .= "&key1=" . htmlspecialchars(rawurlencode(@$data["Bill ID"])); //////////////////////////////////////////// // Bill ID - $display = false; if ($inlineadd == ADD_INLINE || $inlineadd == ADD_ONTHEFLY || $inlineadd == ADD_POPUP) {
/** * Builds SQL query, for retrieve data from DB * */ function buildSQL() { global $gQuery; $searchWhereClause = $this->searchClauseObj->getWhere(GetListOfFieldsByExprType(false, $this->tName)); $searchHavingClause = $this->searchClauseObj->getWhere(GetListOfFieldsByExprType(true, $this->tName)); $this->strWhereClause = whereAdd($this->strWhereClause, $searchWhereClause); $this->strHavingClause = whereAdd($this->strHavingClause, $searchHavingClause); $strSecuritySql = SecuritySQL("Search", $this->tName); $this->strWhereClause = whereAdd($this->strWhereClause, $strSecuritySql); if ($this->noRecordsFirstPage && !count($_GET) && !count($_POST)) { $this->strWhereClause = whereAdd($this->strWhereClause, "1=0"); } //add where clause with foreign keys of current table and it's master table master keys $where = $this->addWhereWithMasterTable(); $this->strWhereClause = whereAdd($this->strWhereClause, $where); if ($this->dbType == nDATABASE_DB2) { $this->gsqlHead .= ", ROW_NUMBER() over () as DB2_ROW_NUMBER "; } $strSQL = gSQLWhere_having($this->gsqlHead, $this->gsqlFrom, $this->gsqlWhereExpr, $this->gsqlGroupBy, $this->gsqlHaving, $this->strWhereClause, $this->strHavingClause); // order by $strSQL .= " " . trim($this->strOrderBy); // save SQL for use in "Export" and "Printer-friendly" pages $_SESSION[$this->sessionPrefix . "_sql"] = $strSQL; $_SESSION[$this->sessionPrefix . "_where"] = $this->strWhereClause; $_SESSION[$this->sessionPrefix . "_having"] = $this->strHavingClause; $_SESSION[$this->sessionPrefix . "_order"] = $this->strOrderBy; $_SESSION[$this->sessionPrefix . "_arrFieldForSort"] = $this->arrFieldForSort; $_SESSION[$this->sessionPrefix . "_arrHowFieldSort"] = $this->arrHowFieldSort; // select and display records $this->addMasterDetailSubQuery(); $strSQLbak = $strSQL; if ($this->eventExists("BeforeQueryList")) { $tstrWhereClause = $this->strWhereClause; $tstrOrderBy = $this->strOrderBy; $this->eventsObject->BeforeQueryList($strSQL, $tstrWhereClause, $tstrOrderBy); $this->strWhereClause = $tstrWhereClause; $this->strOrderBy = $tstrOrderBy; } // Rebuild SQL if needed if ($strSQL != $strSQLbak) { // changed $strSQL - old style $this->numRowsFromSQL = GetRowCount($strSQL); } else { $strSQL = gSQLWhere_having($this->gsqlHead, $this->gsqlFrom, $this->gsqlWhereExpr, $this->gsqlGroupBy, $this->gsqlHaving, $this->strWhereClause, $this->strHavingClause); $strSQL .= " " . trim($this->strOrderBy); $rowcount = false; if ($this->eventExists("ListGetRowCount")) { $rowcount = $this->eventsObject->ListGetRowCount($this->searchClauseObj, $this->masterTable, $this->masterKeysReq, null); } if ($rowcount !== false) { $this->numRowsFromSQL = $rowcount; } else { $this->numRowsFromSQL = gSQLRowCount_int($this->gsqlHead, $this->gsqlFrom, $this->gsqlWhereExpr, $this->gsqlGroupBy, $this->gsqlHaving, $this->strWhereClause, $this->strHavingClause); } } LogInfo($strSQL); $this->querySQL = $strSQL; }