diff options
author | Lionel Elie Mamane <lionel@mamane.lu> | 2020-05-04 22:58:31 +0200 |
---|---|---|
committer | Lionel Elie Mamane <lionel@mamane.lu> | 2020-05-05 01:07:34 +0200 |
commit | 97a2c1fc5e376c0c00968f17a0392c6d3a5ed565 (patch) | |
tree | 1d562462bb15b6303aeb7e846d3d910b7ab6bdb8 /connectivity/source/commontools | |
parent | da21c6756571037dd2e5956a5aa56615f8f29be7 (diff) |
tdf#122408 make StatementComposer apply HAVING clause
Change-Id: I381c918e8cac2800367bc586f8c230d46bcd71e5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93448
Tested-by: Jenkins
Reviewed-by: Lionel Elie Mamane <lionel@mamane.lu>
Diffstat (limited to 'connectivity/source/commontools')
-rw-r--r-- | connectivity/source/commontools/dbtools.cxx | 3 | ||||
-rw-r--r-- | connectivity/source/commontools/statementcomposer.cxx | 11 |
2 files changed, 14 insertions, 0 deletions
diff --git a/connectivity/source/commontools/dbtools.cxx b/connectivity/source/commontools/dbtools.cxx index 36161735ebb2..a16549ba3b50 100644 --- a/connectivity/source/commontools/dbtools.cxx +++ b/connectivity/source/commontools/dbtools.cxx @@ -1246,7 +1246,10 @@ static Reference< XSingleSelectQueryComposer > getComposedRowSetStatement( const bool bApplyFilter = true; _rxRowSet->getPropertyValue("ApplyFilter") >>= bApplyFilter; if ( bApplyFilter ) + { aComposer.setFilter( getString( _rxRowSet->getPropertyValue("Filter") ) ); + aComposer.setHavingClause( getString( _rxRowSet->getPropertyValue("HavingClause") ) ); + } aComposer.getQuery(); diff --git a/connectivity/source/commontools/statementcomposer.cxx b/connectivity/source/commontools/statementcomposer.cxx index a21c8cf1a41d..01f20e9c1e3c 100644 --- a/connectivity/source/commontools/statementcomposer.cxx +++ b/connectivity/source/commontools/statementcomposer.cxx @@ -60,6 +60,7 @@ namespace dbtools Reference< XSingleSelectQueryComposer > xComposer; OUString sCommand; OUString sFilter; + OUString sHavingClause; OUString sOrder; sal_Int32 nCommandType; bool bEscapeProcessing; @@ -189,6 +190,8 @@ namespace dbtools OUString sFilter; OSL_VERIFY( xQuery->getPropertyValue("Filter") >>= sFilter ); xComposer->setFilter( sFilter ); + OSL_VERIFY( xQuery->getPropertyValue("HavingClause") >>= sFilter ); + xComposer->setHavingClause( sFilter ); } // the composed statement @@ -212,6 +215,7 @@ namespace dbtools // append sort/filter xComposer->setOrder( _rData.sOrder ); xComposer->setFilter( _rData.sFilter ); + xComposer->setHavingClause( _rData.sHavingClause ); sStatement = xComposer->getQuery(); @@ -262,6 +266,13 @@ namespace dbtools } + void StatementComposer::setHavingClause( const OUString& _rHavingClause ) + { + m_pData->sHavingClause = _rHavingClause; + m_pData->bComposerDirty = true; + } + + void StatementComposer::setOrder( const OUString& _rOrder ) { m_pData->sOrder = _rOrder; |