summaryrefslogtreecommitdiff
path: root/svx/source/fmcomp/dbaexchange.cxx
diff options
context:
space:
mode:
authorOcke Janssen [oj] <Ocke.Janssen@sun.com>2010-01-22 08:14:22 +0100
committerOcke Janssen [oj] <Ocke.Janssen@sun.com>2010-01-22 08:14:22 +0100
commit02f6eae3aacc973f98fce99219ee74ddb75f2c9a (patch)
tree1fb8a7de46e2937ac2957a5957d744100064d677 /svx/source/fmcomp/dbaexchange.cxx
parentcb2da11da570cdac0e1721609a91b78eee6a59e0 (diff)
dba33f: #i108548# extend SingleSelectQueryComposer appendFilterByColumn with additonal parameter
Diffstat (limited to 'svx/source/fmcomp/dbaexchange.cxx')
-rw-r--r--svx/source/fmcomp/dbaexchange.cxx57
1 files changed, 11 insertions, 46 deletions
diff --git a/svx/source/fmcomp/dbaexchange.cxx b/svx/source/fmcomp/dbaexchange.cxx
index 99abbd9853f7..235cd57865ec 100644
--- a/svx/source/fmcomp/dbaexchange.cxx
+++ b/svx/source/fmcomp/dbaexchange.cxx
@@ -138,30 +138,19 @@ namespace svx
{
try
{
- // need a query composer for this
- Reference< XSQLQueryComposerFactory > xComposerFac;
- _rxForm->getPropertyValue(FM_PROP_ACTIVE_CONNECTION) >>= xComposerFac;
- Reference< XSQLQueryComposer > xComposer;
- if (xComposerFac.is())
- xComposer = xComposerFac->createQueryComposer();
-
- if (xComposer.is())
+ Reference< XTablesSupplier > xSupTab;
+ _rxForm->getPropertyValue(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SingleSelectQueryComposer"))) >>= xSupTab;
+
+ if(xSupTab.is())
{
- ::rtl::OUString sActiveCommand;
- _rxForm->getPropertyValue(FM_PROP_ACTIVECOMMAND) >>= sActiveCommand;
- xComposer->setQuery(sActiveCommand);
- Reference< XTablesSupplier > xSupTab(xComposer, UNO_QUERY);
- if(xSupTab.is())
+ Reference< XNameAccess > xNames = xSupTab->getTables();
+ if (xNames.is())
{
- Reference< XNameAccess > xNames = xSupTab->getTables();
- if (xNames.is())
+ Sequence< ::rtl::OUString > aTables = xNames->getElementNames();
+ if (1 == aTables.getLength())
{
- Sequence< ::rtl::OUString > aTables = xNames->getElementNames();
- if (1 == aTables.getLength())
- {
- sCommand = aTables[0];
- nCommandType = CommandType::TABLE;
- }
+ sCommand = aTables[0];
+ nCommandType = CommandType::TABLE;
}
}
}
@@ -460,34 +449,10 @@ namespace svx
String sObjectKind = (CommandType::TABLE == nObjectType) ? String('1') : String('0');
// check if the SQL-statement is modified
- sal_Bool bHasFilterOrSort(sal_False);
::rtl::OUString sCompleteStatement;
try
{
- ::rtl::OUString sFilter, sSort;
- if (::cppu::any2bool(_rxLivingForm->getPropertyValue(FM_PROP_APPLYFILTER)))
- _rxLivingForm->getPropertyValue(FM_PROP_FILTER) >>= sFilter;
- _rxLivingForm->getPropertyValue(FM_PROP_SORT) >>= sSort;
- bHasFilterOrSort = (sFilter.getLength()>0) || (sSort.getLength()>0);
-
_rxLivingForm->getPropertyValue(FM_PROP_ACTIVECOMMAND) >>= sCompleteStatement;
-
- // create a composer
- Reference< XSQLQueryComposerFactory > xFactory( xConnection, UNO_QUERY );
- Reference< XSQLQueryComposer > xComposer;
- if (xFactory.is())
- xComposer = xFactory->createQueryComposer();
-
- // let the composer compose
- if (xComposer.is())
- {
- xComposer->setQuery(sCompleteStatement);
- xComposer->setFilter(sFilter);
- xComposer->setOrder(sSort);
- sCompleteStatement = xComposer->getComposedQuery();
- }
- // Usually, I would expect the result of the composing to be the same as the ActiveCommand property
- // But this code here is pretty old, and I don't know wha the side effects are if I remove it now ...
}
catch(Exception&)
{
@@ -499,7 +464,7 @@ namespace svx
,sConnectionResource
,nObjectType
,sObjectName,xConnection
- ,!((CommandType::QUERY == nObjectType) && !bHasFilterOrSort)
+ ,!((CommandType::QUERY == nObjectType))
,sCompleteStatement);
}