From bce801021a786207eba162efa79b80e5ee96a9fe Mon Sep 17 00:00:00 2001 From: Denis Flaven Date: Sun, 19 Jul 2009 09:32:44 +0000 Subject: [PATCH] - enhancement: trap exceptions to keep a nice display in case of error SVN:trunk[84] --- pages/sibusql.php | 71 ++++++++++++++++++++++++++++------------------- 1 file changed, 42 insertions(+), 29 deletions(-) diff --git a/pages/sibusql.php b/pages/sibusql.php index 956d28d4de..3780896f29 100644 --- a/pages/sibusql.php +++ b/pages/sibusql.php @@ -19,38 +19,51 @@ $oP = new iTopWebPage("iTop - Expression Evaluation", $currentOrganization); $sExpression = utils::ReadParam('expression', ''); $sEncoding = utils::ReadParam('encoding', 'oql'); -if ($sEncoding == 'crypted') +try { - // Translate $sExpression into a oql expression - $sClearText = base64_decode($sExpression); - echo "FYI: '$sClearText'
\n"; - $oFilter = DBObjectSearch::unserialize($sExpression); - $sExpression = $oFilter->ToOQL(); - exit; -} -else -{ - // leave $sExpression as is -} - -$oP->add('
'."\n"); -$oP->add('Expression to evaluate:
'."\n"); -$oP->add(''."

Example:
SELECT bizPerson AS B WHERE B.name LIKE '%A%'

\n"); -$oP->add(''."\n"); -$oP->add('
'."\n"); - -if (!empty($sExpression)) -{ - $oFilter = DBObjectSearch::FromOQL($sExpression); - if ($oFilter) + if ($sEncoding == 'crypted') { - $oP->p('Query expression: '.$oFilter->ToOQL()); - $oP->p('Serialized filter: '.$oFilter->serialize()); - - $oSet = new CMDBObjectSet($oFilter); - $oP->p('The query returned '.$oSet->count().' results(s)'); - cmdbAbstractObject::DisplaySet($oP, $oSet); + // Translate $sExpression into a oql expression + $sClearText = base64_decode($sExpression); + echo "FYI: '$sClearText'
\n"; + $oFilter = DBObjectSearch::unserialize($sExpression); + $sExpression = $oFilter->ToOQL(); + exit; } + else + { + // leave $sExpression as is + } + + $oP->add('
'."\n"); + $oP->add('Expression to evaluate:
'."\n"); + $oP->add(''."

Example:
SELECT bizPerson AS B WHERE B.name LIKE '%A%'

\n"); + $oP->add(''."\n"); + $oP->add('
'."\n"); + + if (!empty($sExpression)) + { + $oFilter = DBObjectSearch::FromOQL($sExpression); + if ($oFilter) + { + $oP->p('Query expression: '.$oFilter->ToOQL()); + $oP->p('Serialized filter: '.$oFilter->serialize()); + + $oSet = new CMDBObjectSet($oFilter); + $oP->p('The query returned '.$oSet->count().' results(s)'); + cmdbAbstractObject::DisplaySet($oP, $oSet); + } + } +} +catch(CoreException $e) +{ + $oP->p('An error occured while running the query:'); + $oP->p($e->getHtmlDesc()); +} +catch(Exception $e) +{ + $oP->p('An error occured while running the query:'); + $oP->p($e->getMessage()); } $oP->output();