N.897 Object having too many external keys could not be recorded (61 tables)

SVN:trunk[4755]
This commit is contained in:
Romain Quetiez
2017-06-01 12:44:21 +00:00
parent 313ea72017
commit 636356f479

View File

@@ -1409,11 +1409,13 @@ class DBObjectSearch extends DBSearch
{
$aModifierProperties = MetaModel::MakeModifierProperties($this);
$oBuild = new QueryBuilderContext($this, $aModifierProperties);
$oSQLQuery = $this->MakeSQLObjectQuery($oBuild, null, array());
$oSQLQuery = $this->MakeSQLObjectQuery($oBuild, array($this->GetClassAlias() => array()), array());
$oSQLQuery->SetCondition($oBuild->m_oQBExpressions->GetCondition());
$oSQLQuery->SetSelect($oBuild->m_oQBExpressions->GetSelect());
$oSQLQuery->OptimizeJoins(array());
$aScalarArgs = MetaModel::PrepareQueryArguments($aArgs, $this->GetInternalParams());
return $oSQLQuery->RenderDelete($aScalarArgs);
$sRet = $oSQLQuery->RenderDelete($aScalarArgs);
return $sRet;
}
public function MakeUpdateQuery($aValues, $aArgs = array())
@@ -1421,11 +1423,18 @@ class DBObjectSearch extends DBSearch
// $aValues is an array of $sAttCode => $value
$aModifierProperties = MetaModel::MakeModifierProperties($this);
$oBuild = new QueryBuilderContext($this, $aModifierProperties);
$oSQLQuery = $this->MakeSQLObjectQuery($oBuild, null, $aValues);
$aRequested = array(); // Requested attributes are the updated attributes
foreach ($aValues as $sAttCode => $value)
{
$aRequested[$sAttCode] = MetaModel::GetAttributeDef($this->GetClass(), $sAttCode);
}
$oSQLQuery = $this->MakeSQLObjectQuery($oBuild, array($this->GetClassAlias() => $aRequested), $aValues);
$oSQLQuery->SetCondition($oBuild->m_oQBExpressions->GetCondition());
$oSQLQuery->SetSelect($oBuild->m_oQBExpressions->GetSelect());
$oSQLQuery->OptimizeJoins(array());
$aScalarArgs = MetaModel::PrepareQueryArguments($aArgs, $this->GetInternalParams());
return $oSQLQuery->RenderUpdate($aScalarArgs);
$sRet = $oSQLQuery->RenderUpdate($aScalarArgs);
return $sRet;
}
public function GetSQLQueryStructure($aAttToLoad, $bGetCount, $aGroupByExpr = null, $aSelectedClasses = null)