summaryrefslogtreecommitdiff
path: root/dbaccess/source/core/api/querycomposer.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'dbaccess/source/core/api/querycomposer.cxx')
-rw-r--r--dbaccess/source/core/api/querycomposer.cxx19
1 files changed, 18 insertions, 1 deletions
diff --git a/dbaccess/source/core/api/querycomposer.cxx b/dbaccess/source/core/api/querycomposer.cxx
index 0d3096827b21..ea0a3617e9ba 100644
--- a/dbaccess/source/core/api/querycomposer.cxx
+++ b/dbaccess/source/core/api/querycomposer.cxx
@@ -88,6 +88,7 @@
#ifndef _COM_SUN_STAR_CONTAINER_XCHILD_HPP_
#include <com/sun/star/container/XChild.hpp>
#endif
+#include <com/sun/star/sdb/SQLFilterOperator.hpp>
#ifndef DBACCESS_CORE_API_QUERYCOMPOSER_HXX
#include "querycomposer.hxx"
#endif
@@ -282,7 +283,23 @@ void SAL_CALL OQueryComposer::appendFilterByColumn( const Reference< XPropertySe
m_xComposerHelper->setQuery(getQuery());
m_xComposerHelper->setFilter(::rtl::OUString());
- m_xComposerHelper->appendFilterByColumn(column,sal_True);
+ sal_Int32 nOp = SQLFilterOperator::EQUAL;
+ if ( column.is() )
+ {
+ sal_Int32 nType = 0;
+ column->getPropertyValue(PROPERTY_TYPE) >>= nType;
+ switch(nType)
+ {
+ case DataType::VARCHAR:
+ case DataType::CHAR:
+ case DataType::LONGVARCHAR:
+ nOp = SQLFilterOperator::LIKE;
+ break;
+ default:
+ nOp = SQLFilterOperator::EQUAL;
+ }
+ }
+ m_xComposerHelper->appendFilterByColumn(column,sal_True,nOp);
FilterCreator aFilterCreator;
aFilterCreator.append(getFilter());