protected function UpdateQuery(QueryBuilder $QueryBuilder, Relational\Procedure $Procedure) { $TableNames = array_map(function ($Table) { return $Table->GetName(); }, $Procedure->GetTables()); $QueryBuilder->AppendIdentifiers('UPDATE # SET ', $TableNames, ','); foreach ($QueryBuilder->Delimit($Procedure->GetExpressions(), ',') as $Expression) { $QueryBuilder->AppendExpression($Expression); } $this->AppendCriterion($QueryBuilder, $Procedure->GetCriterion()); }
/** * @access private * * Maps a supplied object procedure to an equivalent relational procedure. * * @param Object\IProcedure $ObjectProcedure The object procedure * @return Relational\Procedure The equivalent relational procedure */ public final function MapProcedure(Object\IProcedure $ObjectProcedure) { $EntityRelationalMap = $this->VerifyEntityTypeIsMapped($ObjectProcedure->GetEntityType()); $RelationalProcedure = new Relational\Procedure($EntityRelationalMap->GetMappedPersistTables(), $EntityRelationalMap->GetCriterion()); $this->MapCriterion($EntityRelationalMap, $ObjectProcedure->GetCriterion(), $RelationalProcedure->GetCriterion()); foreach ($this->MapExpressions($EntityRelationalMap, $ObjectProcedure->GetExpressions()) as $MappedExpression) { $RelationalProcedure->AddExpression($MappedExpression); } return $RelationalProcedure; }