summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dbaccess/qa/complex/dbaccess/DatabaseDocument.java1
-rw-r--r--dbaccess/source/core/api/KeySet.cxx17
-rw-r--r--dbaccess/source/core/api/KeySet.hxx4
-rw-r--r--dbaccess/source/core/api/RowSet.cxx5
-rw-r--r--dbaccess/source/core/api/RowSet.hxx1
-rw-r--r--dbaccess/source/core/api/RowSetCache.cxx5
-rw-r--r--dbaccess/source/core/api/RowSetCache.hxx3
-rw-r--r--dbaccess/source/core/api/statement.cxx51
-rw-r--r--dbaccess/source/core/inc/statement.hxx16
-rw-r--r--dbaccess/source/inc/dbustrings.hrc1
-rw-r--r--dbaccess/source/shared/dbustrings.cxx1
-rw-r--r--dbaccess/source/ui/browser/brwctrlr.cxx48
-rw-r--r--dbaccess/source/ui/browser/unodatbr.cxx71
-rw-r--r--dbaccess/source/ui/dlg/dbwizsetup.cxx1
-rw-r--r--dbaccess/source/ui/inc/brwctrlr.hxx13
-rw-r--r--dbaccess/source/ui/querydesign/QueryDesignView.cxx6
-rw-r--r--dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx48
-rw-r--r--dbaccess/source/ui/querydesign/query.src48
-rw-r--r--dbaccess/source/ui/querydesign/querycontroller.cxx2
-rw-r--r--dbaccess/source/ui/tabledesign/TEditControl.cxx6
-rw-r--r--dbaccess/source/ui/uno/copytablewizard.cxx10
-rw-r--r--dbaccess/source/ui/uno/makefile.mk7
-rw-r--r--reportdesign/source/ui/inc/FixedTextColor.hxx4
-rw-r--r--reportdesign/source/ui/inc/FormattedFieldBeautifier.hxx4
-rw-r--r--reportdesign/source/ui/inc/IReportControllerObserver.hxx3
25 files changed, 249 insertions, 127 deletions
diff --git a/dbaccess/qa/complex/dbaccess/DatabaseDocument.java b/dbaccess/qa/complex/dbaccess/DatabaseDocument.java
index 09f7871dbbbb..ceca1e431715 100644
--- a/dbaccess/qa/complex/dbaccess/DatabaseDocument.java
+++ b/dbaccess/qa/complex/dbaccess/DatabaseDocument.java
@@ -48,7 +48,6 @@ import com.sun.star.document.XDocumentEventBroadcaster;
import com.sun.star.document.XDocumentEventListener;
import com.sun.star.document.XEmbeddedScripts;
import com.sun.star.document.XEventsSupplier;
-import com.sun.star.document.XScriptInvocationContext;
import com.sun.star.frame.DoubleInitializationException;
import com.sun.star.lang.XComponent;
import com.sun.star.frame.XComponentLoader;
diff --git a/dbaccess/source/core/api/KeySet.cxx b/dbaccess/source/core/api/KeySet.cxx
index fa2bde353d29..e39c5b0f57b2 100644
--- a/dbaccess/source/core/api/KeySet.cxx
+++ b/dbaccess/source/core/api/KeySet.cxx
@@ -157,8 +157,10 @@ DBG_NAME(OKeySet)
OKeySet::OKeySet(const connectivity::OSQLTable& _xTable,
const Reference< XIndexAccess>& _xTableKeys,
const ::rtl::OUString& _rUpdateTableName, // this can be the alias or the full qualified name
- const Reference< XSingleSelectQueryAnalyzer >& _xComposer)
- :m_pKeyColumnNames(NULL)
+ const Reference< XSingleSelectQueryAnalyzer >& _xComposer,
+ const ORowSetValueVector& _aParameterValueForCache)
+ :m_aParameterValueForCache(_aParameterValueForCache)
+ ,m_pKeyColumnNames(NULL)
,m_pColumnNames(NULL)
,m_pForeignColumnNames(NULL)
,m_xTable(_xTable)
@@ -304,6 +306,11 @@ void OKeySet::construct(const Reference< XResultSet>& _xDriverSet)
break;
}
}
+ } // if ( aSeq.getLength() > 1 ) // special handling for join
+ const ::rtl::OUString sOldFilter = xAnalyzer->getFilter();
+ if ( sOldFilter.getLength() )
+ {
+ aFilter = sOldFilter + aAnd + aFilter;
}
xAnalyzer->setFilter(aFilter.makeStringAndClear());
m_xStatement = m_xConnection->prepareStatement(xAnalyzer->getQueryWithSubstitution());
@@ -1124,6 +1131,12 @@ void SAL_CALL OKeySet::refreshRow() throw(SQLException, RuntimeException)
OSL_ENSURE(xParameter.is(),"No Parameter interface!");
xParameter->clearParameters();
sal_Int32 nPos=1;
+ connectivity::ORowVector< ORowSetValue >::Vector::const_iterator aParaIter = m_aParameterValueForCache.get().begin();
+ connectivity::ORowVector< ORowSetValue >::Vector::const_iterator aParaEnd = m_aParameterValueForCache.get().end();
+ for(++aParaIter;aParaIter != aParaEnd;++aParaIter,++nPos)
+ {
+ ::dbtools::setObjectWithInfo( xParameter, nPos, aParaIter->makeAny(), aParaIter->getTypeKind() );
+ }
connectivity::ORowVector< ORowSetValue >::Vector::const_iterator aIter = m_aKeyIter->second.first->get().begin();
SelectColumnsMetaData::const_iterator aPosIter = (*m_pKeyColumnNames).begin();
SelectColumnsMetaData::const_iterator aPosEnd = (*m_pKeyColumnNames).end();
diff --git a/dbaccess/source/core/api/KeySet.hxx b/dbaccess/source/core/api/KeySet.hxx
index c930d1fe2b2e..4193f60506d1 100644
--- a/dbaccess/source/core/api/KeySet.hxx
+++ b/dbaccess/source/core/api/KeySet.hxx
@@ -97,6 +97,7 @@ namespace dbaccess
::std::vector< ::rtl::OUString > m_aAutoColumns; // contains all columns which are autoincrement ones
+ ORowSetValueVector m_aParameterValueForCache;
SelectColumnsMetaData* m_pKeyColumnNames; // contains all key column names
SelectColumnsMetaData* m_pColumnNames; // contains all column names
SelectColumnsMetaData* m_pForeignColumnNames; // contains all column names of the rest
@@ -139,7 +140,8 @@ namespace dbaccess
OKeySet(const connectivity::OSQLTable& _xTable,
const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>& _xTableKeys,
const ::rtl::OUString& _rUpdateTableName,
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSingleSelectQueryAnalyzer >& _xComposer);
+ const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSingleSelectQueryAnalyzer >& _xComposer,
+ const ORowSetValueVector& _aParameterValueForCache);
// late ctor which can throw exceptions
virtual void construct(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _xDriverSet);
diff --git a/dbaccess/source/core/api/RowSet.cxx b/dbaccess/source/core/api/RowSet.cxx
index f49d074ff3fc..ebbb982a6305 100644
--- a/dbaccess/source/core/api/RowSet.cxx
+++ b/dbaccess/source/core/api/RowSet.cxx
@@ -1716,13 +1716,14 @@ Reference< XResultSet > ORowSet::impl_prepareAndExecute_throw()
// this exception doesn't matter here because when we catch an exception
// then the driver doesn't support this feature
}
-
+ m_aParameterValueForCache.get().resize(1);
Reference< XParameters > xParam( m_xStatement, UNO_QUERY_THROW );
size_t nParamCount( m_pParameters.is() ? m_pParameters->size() : m_aPrematureParamValues.get().size() );
for ( size_t i=1; i<=nParamCount; ++i )
{
ORowSetValue& rParamValue( getParameterStorage( (sal_Int32)i ) );
::dbtools::setObjectWithInfo( xParam, i, rParamValue.makeAny(), rParamValue.getTypeKind() );
+ m_aParameterValueForCache.get().push_back(rParamValue);
}
xResultSet = m_xStatement->executeQuery();
@@ -1864,7 +1865,7 @@ void ORowSet::execute_NoApprove_NoNewConn(ResettableMutexGuard& _rClearForNotifi
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "frank.schoenheit@sun.com", "ORowSet::execute_NoApprove_NoNewConn: creating cache" );
- m_pCache = new ORowSetCache( xResultSet, m_xComposer.get(), m_aContext, aComposedUpdateTableName, m_bModified, m_bNew );
+ m_pCache = new ORowSetCache( xResultSet, m_xComposer.get(), m_aContext, aComposedUpdateTableName, m_bModified, m_bNew,m_aParameterValueForCache );
if ( m_nResultSetConcurrency == ResultSetConcurrency::READ_ONLY )
{
m_nPrivileges = Privilege::SELECT;
diff --git a/dbaccess/source/core/api/RowSet.hxx b/dbaccess/source/core/api/RowSet.hxx
index 90a0ad9c7928..25fa3a3415f6 100644
--- a/dbaccess/source/core/api/RowSet.hxx
+++ b/dbaccess/source/core/api/RowSet.hxx
@@ -133,6 +133,7 @@ namespace dbaccess
(since we have not been executed, yet)
*/
ORowSetValueVector m_aPrematureParamValues;
+ ORowSetValueVector m_aParameterValueForCache;
::std::bit_vector m_aParametersSet;
::cppu::OInterfaceContainerHelper m_aRowsetListeners;
diff --git a/dbaccess/source/core/api/RowSetCache.cxx b/dbaccess/source/core/api/RowSetCache.cxx
index 38f075493f89..1472516faca5 100644
--- a/dbaccess/source/core/api/RowSetCache.cxx
+++ b/dbaccess/source/core/api/RowSetCache.cxx
@@ -137,7 +137,8 @@ ORowSetCache::ORowSetCache(const Reference< XResultSet >& _xRs,
const ::comphelper::ComponentContext& _rContext,
const ::rtl::OUString& _rUpdateTableName,
sal_Bool& _bModified,
- sal_Bool& _bNew)
+ sal_Bool& _bNew,
+ const ORowSetValueVector& _aParameterValueForCache)
:m_xSet(_xRs)
,m_xMetaData(Reference< XResultSetMetaDataSupplier >(_xRs,UNO_QUERY)->getMetaData())
,m_aContext( _rContext )
@@ -328,7 +329,7 @@ ORowSetCache::ORowSetCache(const Reference< XResultSet >& _xRs,
}
}
- OKeySet* pKeySet = new OKeySet(m_aUpdateTable,xUpdateTableKeys,aUpdateTableName ,_xAnalyzer);
+ OKeySet* pKeySet = new OKeySet(m_aUpdateTable,xUpdateTableKeys,aUpdateTableName ,_xAnalyzer,_aParameterValueForCache);
try
{
m_pCacheSet = pKeySet;
diff --git a/dbaccess/source/core/api/RowSetCache.hxx b/dbaccess/source/core/api/RowSetCache.hxx
index f89a1cd82caa..81b74a6a6d13 100644
--- a/dbaccess/source/core/api/RowSetCache.hxx
+++ b/dbaccess/source/core/api/RowSetCache.hxx
@@ -194,7 +194,8 @@ namespace dbaccess
const ::comphelper::ComponentContext& _rContext,
const ::rtl::OUString& _rUpdateTableName,
sal_Bool& _bModified,
- sal_Bool& _bNew);
+ sal_Bool& _bNew,
+ const ORowSetValueVector& _aParameterValueForCache);
~ORowSetCache();
diff --git a/dbaccess/source/core/api/statement.cxx b/dbaccess/source/core/api/statement.cxx
index ac658ea1bba8..c4ddacd87db2 100644
--- a/dbaccess/source/core/api/statement.cxx
+++ b/dbaccess/source/core/api/statement.cxx
@@ -111,12 +111,14 @@ Sequence< Type > OStatementBase::getTypes() throw (RuntimeException)
::getCppuType( (const Reference< XWarningsSupplier > *)0 ),
::getCppuType( (const Reference< XCloseable > *)0 ),
::getCppuType( (const Reference< XMultipleResults > *)0 ),
- ::getCppuType( (const Reference< XPreparedBatchExecution > *)0 ),
::getCppuType( (const Reference< ::com::sun::star::util::XCancellable > *)0 ),
OSubComponent::getTypes() );
Reference< XGeneratedResultSet > xGRes(m_xAggregateAsSet, UNO_QUERY);
if ( xGRes.is() )
aTypes = OTypeCollection(::getCppuType( (const Reference< XGeneratedResultSet > *)0 ),aTypes.getTypes());
+ Reference< XPreparedBatchExecution > xPreparedBatchExecution(m_xAggregateAsSet, UNO_QUERY);
+ if ( xPreparedBatchExecution.is() )
+ aTypes = OTypeCollection(::getCppuType( (const Reference< XPreparedBatchExecution > *)0 ),aTypes.getTypes());
return aTypes.getTypes();
}
@@ -134,7 +136,6 @@ Any OStatementBase::queryInterface( const Type & rType ) throw (RuntimeException
static_cast< XPropertySet * >( this ),
static_cast< XWarningsSupplier * >( this ),
static_cast< XCloseable * >( this ),
- static_cast< XPreparedBatchExecution * >( this ),
static_cast< XMultipleResults * >( this ),
static_cast< ::com::sun::star::util::XCancellable * >( this ));
if ( !aIface.hasValue() )
@@ -142,6 +143,12 @@ Any OStatementBase::queryInterface( const Type & rType ) throw (RuntimeException
Reference< XGeneratedResultSet > xGRes(m_xAggregateAsSet, UNO_QUERY);
if ( ::getCppuType( (const Reference< XGeneratedResultSet > *)0 ) == rType && xGRes.is() )
aIface = ::cppu::queryInterface(rType,static_cast< XGeneratedResultSet * >( this ));
+ } // if ( !aIface.hasValue() )
+ if ( !aIface.hasValue() )
+ {
+ Reference< XPreparedBatchExecution > xGRes(m_xAggregateAsSet, UNO_QUERY);
+ if ( ::getCppuType( (const Reference< XPreparedBatchExecution > *)0 ) == rType && xGRes.is() )
+ aIface = ::cppu::queryInterface(rType,static_cast< XPreparedBatchExecution * >( this ));
}
}
return aIface;
@@ -583,6 +590,46 @@ sal_Bool OStatement::execute( const rtl::OUString& _rSQL ) throw( SQLException,
::rtl::OUString sSQL( impl_doEscapeProcessing_nothrow( _rSQL ) );
return m_xAggregateStatement->execute( sSQL );
}
+//------------------------------------------------------------------------------
+void OStatement::addBatch( const rtl::OUString& _rSQL ) throw( SQLException, RuntimeException )
+{
+ RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OStatement::execute" );
+ MutexGuard aGuard(m_aMutex);
+ ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+
+ // first check the meta data
+ Reference<XDatabaseMetaData> xMeta = Reference< XConnection > (m_xParent, UNO_QUERY)->getMetaData();
+ if (!xMeta.is() && !xMeta->supportsBatchUpdates())
+ throwFunctionSequenceException(*this);
+
+ ::rtl::OUString sSQL( impl_doEscapeProcessing_nothrow( _rSQL ) );
+ Reference< XBatchExecution >(m_xAggregateAsSet, UNO_QUERY)->addBatch( sSQL );
+}
+//------------------------------------------------------------------------------
+void OStatement::clearBatch( ) throw( SQLException, RuntimeException )
+{
+ RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OStatement::execute" );
+ MutexGuard aGuard(m_aMutex);
+ ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ // first check the meta data
+ Reference<XDatabaseMetaData> xMeta = Reference< XConnection > (m_xParent, UNO_QUERY)->getMetaData();
+ if (!xMeta.is() && !xMeta->supportsBatchUpdates())
+ throwFunctionSequenceException(*this);
+
+ Reference< XBatchExecution >(m_xAggregateAsSet, UNO_QUERY)->clearBatch();
+}
+//------------------------------------------------------------------------------
+Sequence< sal_Int32 > OStatement::executeBatch( ) throw( SQLException, RuntimeException )
+{
+ RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OStatement::execute" );
+ MutexGuard aGuard(m_aMutex);
+ ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ // first check the meta data
+ Reference<XDatabaseMetaData> xMeta = Reference< XConnection > (m_xParent, UNO_QUERY)->getMetaData();
+ if (!xMeta.is() && !xMeta->supportsBatchUpdates())
+ throwFunctionSequenceException(*this);
+ return Reference< XBatchExecution >(m_xAggregateAsSet, UNO_QUERY)->executeBatch( );
+}
//------------------------------------------------------------------------------
Reference< XConnection > OStatement::getConnection(void) throw( SQLException, RuntimeException )
diff --git a/dbaccess/source/core/inc/statement.hxx b/dbaccess/source/core/inc/statement.hxx
index 33d3e87e2f12..82b031548e22 100644
--- a/dbaccess/source/core/inc/statement.hxx
+++ b/dbaccess/source/core/inc/statement.hxx
@@ -54,6 +54,7 @@
#ifndef _COM_SUN_STAR_SDBC_XPREPAREDBATCHEXECUTION_HDL_
#include <com/sun/star/sdbc/XPreparedBatchExecution.hpp>
#endif
+#include <com/sun/star/sdbc/XBatchExecution.hpp>
#ifndef _COM_SUN_STAR_SDBC_XGENERATEDRESULTSET_HPP_
#include <com/sun/star/sdbc/XGeneratedResultSet.hpp>
#endif
@@ -72,9 +73,8 @@
#ifndef _COMPHELPER_BROADCASTHELPER_HXX_
#include <comphelper/broadcasthelper.hxx>
#endif
-#ifndef _CPPUHELPER_IMPLBASE2_HXX_
-#include <cppuhelper/implbase2.hxx>
-#endif
+
+#include <cppuhelper/implbase3.hxx>
//************************************************************
// OStatementBase
@@ -171,8 +171,9 @@ protected:
//************************************************************
// OStatement
//************************************************************
-typedef ::cppu::ImplHelper2 < ::com::sun::star::sdbc::XStatement
+typedef ::cppu::ImplHelper3 < ::com::sun::star::sdbc::XStatement
, ::com::sun::star::lang::XServiceInfo
+ , ::com::sun::star::sdbc::XBatchExecution
> OStatement_IFACE;
class OStatement :public OStatementBase
,public OStatement_IFACE
@@ -203,6 +204,13 @@ public:
// OComponentHelper
virtual void SAL_CALL disposing();
+ // XBatchExecution
+ virtual void SAL_CALL addBatch( const ::rtl::OUString& sql ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL clearBatch( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL executeBatch( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
+
+ using OStatementBase::addBatch;
+
private:
/** does escape processing for the given SQL command, if the our EscapeProcessing
property allows so.
diff --git a/dbaccess/source/inc/dbustrings.hrc b/dbaccess/source/inc/dbustrings.hrc
index 009b263d6081..e044627d32cd 100644
--- a/dbaccess/source/inc/dbustrings.hrc
+++ b/dbaccess/source/inc/dbustrings.hrc
@@ -74,6 +74,7 @@ namespace dbaui
DECLARE_CONSTASCII_USTRING(PROPERTY_DEFAULTCONTROL);
DECLARE_CONSTASCII_USTRING(PROPERTY_TABSTOP);
DECLARE_CONSTASCII_USTRING(PROPERTY_ENABLED);
+ DECLARE_CONSTASCII_USTRING(PROPERTY_MOUSE_WHEEL_BEHAVIOR);
}
#endif // DBACCESS_SHARED_DBUSTRINGS_HRC
diff --git a/dbaccess/source/shared/dbustrings.cxx b/dbaccess/source/shared/dbustrings.cxx
index 875342b73b07..7acbe561ffff 100644
--- a/dbaccess/source/shared/dbustrings.cxx
+++ b/dbaccess/source/shared/dbustrings.cxx
@@ -72,4 +72,5 @@ namespace dbaui
IMPLEMENT_CONSTASCII_USTRING(PROPERTY_TABSTOP, "TabStop");
IMPLEMENT_CONSTASCII_USTRING(PROPERTY_DEFAULTCONTROL, "DefaultControl");
IMPLEMENT_CONSTASCII_USTRING(PROPERTY_ENABLED, "Enabled");
+ IMPLEMENT_CONSTASCII_USTRING(PROPERTY_MOUSE_WHEEL_BEHAVIOR, "MouseWheelBehavior");
}
diff --git a/dbaccess/source/ui/browser/brwctrlr.cxx b/dbaccess/source/ui/browser/brwctrlr.cxx
index 706064da08f1..fdd9e7396d83 100644
--- a/dbaccess/source/ui/browser/brwctrlr.cxx
+++ b/dbaccess/source/ui/browser/brwctrlr.cxx
@@ -489,6 +489,7 @@ SbaXDataBrowserController::SbaXDataBrowserController(const Reference< ::com::sun
:SbaXDataBrowserController_Base(_rM)
,m_pClipbordNotifier( NULL )
,m_aAsyncGetCellFocus(LINK(this, SbaXDataBrowserController, OnAsyncGetCellFocus))
+ ,m_aAsyncDisplayError( LINK( this, SbaXDataBrowserController, OnAsyncDisplayError ) )
,m_sStateSaveRecord(ModuleRes(RID_STR_SAVE_CURRENT_RECORD))
,m_sStateUndoRecord(ModuleRes(RID_STR_UNDO_MODIFY_RECORD))
,m_sModuleIdentifier( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.sdb.DataSourceBrowser" ) ) )
@@ -498,7 +499,6 @@ SbaXDataBrowserController::SbaXDataBrowserController(const Reference< ::com::sun
,m_nFormActionNestingLevel(0)
,m_bLoadCanceled( sal_False )
,m_bClosingKillOpen( sal_False )
- ,m_bErrorOccured( sal_False )
,m_bCannotSelectUnfiltered( true )
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::SbaXDataBrowserController" );
@@ -608,7 +608,7 @@ sal_Bool SbaXDataBrowserController::reloadForm( const Reference< XLoadable >& _r
}
}
- return _rxLoadable->isLoaded() && !errorOccured();
+ return _rxLoadable->isLoaded();
}
// -----------------------------------------------------------------------------
@@ -1201,6 +1201,7 @@ sal_Bool SbaXDataBrowserController::suspend(sal_Bool /*bSuspend*/) throw( Runtim
DBG_ASSERT(m_nPendingLoadFinished == 0, "SbaXDataBrowserController::suspend : there shouldn't be a pending load !");
m_aAsyncGetCellFocus.CancelCall();
+ m_aAsyncDisplayError.CancelCall();
m_aAsyncInvalidateAll.CancelCall();
sal_Bool bSuccess = SaveModified();
@@ -1345,17 +1346,30 @@ void SbaXDataBrowserController::frameAction(const ::com::sun::star::frame::Frame
}
//------------------------------------------------------------------------------
+IMPL_LINK( SbaXDataBrowserController, OnAsyncDisplayError, void*, /* _pNotInterestedIn */ )
+{
+ OSQLMessageBox aDlg( getBrowserView(), m_aCurrentError );
+ aDlg.Execute();
+ return 0L;
+}
+
+//------------------------------------------------------------------------------
void SbaXDataBrowserController::errorOccured(const ::com::sun::star::sdb::SQLErrorEvent& aEvent) throw( RuntimeException )
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::errorOccured" );
- SQLExceptionInfo aInfo(aEvent.Reason);
- if ( aInfo.isValid() )
+ ::osl::MutexGuard aGuard( getMutex() );
+
+ SQLExceptionInfo aInfo( aEvent.Reason );
+ if ( !aInfo.isValid() )
+ return;
+
+ if ( m_nFormActionNestingLevel )
{
- ::vos::OGuard aGuard(Application::GetSolarMutex());
- showError( aInfo );
+ OSL_ENSURE( !m_aCurrentError.isValid(), "SbaXDataBrowserController::errorOccured: can handle one error per transaction only!" );
+ m_aCurrentError = aInfo;
}
- if (m_nFormActionNestingLevel)
- m_bErrorOccured = true;
+ else
+ m_aAsyncDisplayError.Call();
}
//------------------------------------------------------------------------------
@@ -2659,10 +2673,9 @@ void SbaXDataBrowserController::reloaded(const EventObject& /*aEvent*/) throw( R
//------------------------------------------------------------------------------
void SbaXDataBrowserController::enterFormAction()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::enterFormAction" );
- if (!m_nFormActionNestingLevel)
- // first action -> reset flag
- m_bErrorOccured = false;
+ if ( !m_nFormActionNestingLevel )
+ // first action -> reset
+ m_aCurrentError.clear();
++m_nFormActionNestingLevel;
}
@@ -2670,9 +2683,14 @@ void SbaXDataBrowserController::enterFormAction()
//------------------------------------------------------------------------------
void SbaXDataBrowserController::leaveFormAction()
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen@sun.com", "SbaXDataBrowserController::leaveFormAction" );
- DBG_ASSERT(m_nFormActionNestingLevel > 0, "SbaXDataBrowserController::leaveFormAction : invalid call !");
- --m_nFormActionNestingLevel;
+ DBG_ASSERT( m_nFormActionNestingLevel > 0, "SbaXDataBrowserController::leaveFormAction : invalid call !" );
+ if ( --m_nFormActionNestingLevel > 0 )
+ return;
+
+ if ( !m_aCurrentError.isValid() )
+ return;
+
+ m_aAsyncDisplayError.Call();
}
// -------------------------------------------------------------------------
diff --git a/dbaccess/source/ui/browser/unodatbr.cxx b/dbaccess/source/ui/browser/unodatbr.cxx
index 57a4a9270c25..98caa841c84c 100644
--- a/dbaccess/source/ui/browser/unodatbr.cxx
+++ b/dbaccess/source/ui/browser/unodatbr.cxx
@@ -60,6 +60,8 @@
/** === begin UNO includes === **/
#include <com/sun/star/awt/LineEndFormat.hpp>
+#include <com/sun/star/awt/LineEndFormat.hpp>
+#include <com/sun/star/awt/MouseWheelBehavior.hpp>
#include <com/sun/star/awt/TextAlign.hpp>
#include <com/sun/star/awt/VisualEffect.hpp>
#include <com/sun/star/beans/NamedValue.hpp>
@@ -684,13 +686,23 @@ sal_Bool SbaTableQueryBrowser::InitializeGridModel(const Reference< ::com::sun::
aCopyProperties.push_back( PROPERTY_WIDTH );
// help text to display for the column
- Any aDescription; aDescription <<= ::rtl::OUString();
+ Any aDescription;
if ( xColPSI->hasPropertyByName( PROPERTY_HELPTEXT ) )
- aDescription <<= ::comphelper::getString( xColumn->getPropertyValue( PROPERTY_HELPTEXT ) );
+ aDescription = xColumn->getPropertyValue( PROPERTY_HELPTEXT );
+ if ( !aDescription.hasValue() )
+ aDescription <<= ::rtl::OUString();
aInitialValues.push_back( NamedValue( PROPERTY_HELPTEXT, aDescription ) );
// ... horizontal justify
- aInitialValues.push_back( NamedValue( PROPERTY_ALIGN, makeAny( sal_Int16( ::comphelper::getINT32( xColumn->getPropertyValue( PROPERTY_ALIGN ) ) ) ) ) );
+ Any aAlign; aAlign <<= sal_Int16( 0 );
+ Any aColAlign( xColumn->getPropertyValue( PROPERTY_ALIGN ) );
+ if ( aColAlign.hasValue() )
+ aAlign <<= sal_Int16( ::comphelper::getINT32( aColAlign ) );
+ aInitialValues.push_back( NamedValue( PROPERTY_ALIGN, aAlign ) );
+
+ // don't allow the mouse to scroll in the cells
+ if ( xGridColPSI->hasPropertyByName( PROPERTY_MOUSE_WHEEL_BEHAVIOR ) )
+ aInitialValues.push_back( NamedValue( PROPERTY_MOUSE_WHEEL_BEHAVIOR, makeAny( MouseWheelBehavior::SCROLL_DISABLED ) ) );
// now set all those values
for ( ::std::vector< NamedValue >::const_iterator property = aInitialValues.begin();
@@ -2346,31 +2358,34 @@ sal_Bool SbaTableQueryBrowser::implSelect(const ::rtl::OUString& _rDataSourceNam
SvLBoxEntry* pCommandType = NULL;
SvLBoxEntry* pCommand = getObjectEntry( _rDataSourceName, _rCommand, _nCommandType, &pDataSource, &pCommandType, sal_True, _rxConnection );
- // if (pDataSource) // OJ change for the new app
+ if (pCommand)
{
- if (pCommand)
+ bool bSuccess = true;
+ if ( _bSelectDirect )
{
- if ( _bSelectDirect )
- {
- implSelect( pCommand );
- }
- else
- m_pTreeView->getListBox().Select(pCommand);
+ bSuccess = implSelect( pCommand );
+ }
+ else
+ {
+ m_pTreeView->getListBox().Select( pCommand );
+ }
+ if ( bSuccess )
+ {
m_pTreeView->getListBox().MakeVisible(pCommand);
m_pTreeView->getListBox().SetCursor(pCommand);
}
- else if (!pCommandType)
- {
- if ( m_pCurrentlyDisplayed )
- { // tell the old entry (if any) it has been deselected
- selectPath(m_pCurrentlyDisplayed, sal_False);
- m_pCurrentlyDisplayed = NULL;
- }
-
- // we have a command and need to display this in the rowset
- return implLoadAnything(_rDataSourceName, _rCommand, _nCommandType, _bEscapeProcessing, _rxConnection);
+ }
+ else if (!pCommandType)
+ {
+ if ( m_pCurrentlyDisplayed )
+ { // tell the old entry (if any) it has been deselected
+ selectPath(m_pCurrentlyDisplayed, sal_False);
+ m_pCurrentlyDisplayed = NULL;
}
+
+ // we have a command and need to display this in the rowset
+ return implLoadAnything(_rDataSourceName, _rCommand, _nCommandType, _bEscapeProcessing, _rxConnection);
}
}
return sal_False;
@@ -2437,7 +2452,8 @@ bool SbaTableQueryBrowser::implSelect( SvLBoxEntry* _pEntry )
Reference< ::com::sun::star::form::XLoadable > xLoadable = getLoadable();
bRebuild |= !xLoadable->isLoaded();
- if(bRebuild)
+ bool bSuccess = true;
+ if ( bRebuild )
{
try
{
@@ -2458,7 +2474,7 @@ bool SbaTableQueryBrowser::implSelect( SvLBoxEntry* _pEntry )
if ( !pConData->xConnection.is() )
{
unloadAndCleanup( sal_False );
- return 0L;
+ return false;
}
Reference<XNameAccess> xNameAccess;
@@ -2532,6 +2548,7 @@ bool SbaTableQueryBrowser::implSelect( SvLBoxEntry* _pEntry )
}
catch (Exception&)
{
+ DBG_UNHANDLED_EXCEPTION();
}
}
}
@@ -2540,10 +2557,8 @@ bool SbaTableQueryBrowser::implSelect( SvLBoxEntry* _pEntry )
}
String sDataSourceName( getDataSourceAcessor( pConnection ) );
- if ( implLoadAnything( sDataSourceName, aName, nCommandType, sal_True, pConData->xConnection ) )
- // set the title of the beamer
- ;/*updateTitle();*/
- else
+ bSuccess = implLoadAnything( sDataSourceName, aName, nCommandType, sal_True, pConData->xConnection );
+ if ( !bSuccess )
{ // clean up
criticalFail();
}
@@ -2573,7 +2588,7 @@ bool SbaTableQueryBrowser::implSelect( SvLBoxEntry* _pEntry )
xRowSetProps->setPropertyValue(PROPERTY_ACTIVE_CONNECTION,Any());
}
}
- return true;
+ return bSuccess;
}
// -----------------------------------------------------------------------------
diff --git a/dbaccess/source/ui/dlg/dbwizsetup.cxx b/dbaccess/source/ui/dlg/dbwizsetup.cxx
index caa8657d5276..9147ef69e9ad 100644
--- a/dbaccess/source/ui/dlg/dbwizsetup.cxx
+++ b/dbaccess/source/ui/dlg/dbwizsetup.cxx
@@ -865,6 +865,7 @@ sal_Bool ODbTypeWizDialogSetup::SaveDatabaseDocument()
::comphelper::NamedValueCollection aArgs( xModel->getArgs() );
aArgs.put( "Overwrite", sal_Bool( sal_True ) );
aArgs.put( "InteractionHandler", xHandler );
+ aArgs.put( "MacroExecutionMode", MacroExecMode::USE_CONFIG );
::rtl::OUString sPath = m_pImpl->getDocumentUrl( *m_pOutSet );
xStore->storeAsURL( sPath, aArgs.getPropertyValues() );
diff --git a/dbaccess/source/ui/inc/brwctrlr.hxx b/dbaccess/source/ui/inc/brwctrlr.hxx
index 381c70a2c0cd..1e796fbed624 100644
--- a/dbaccess/source/ui/inc/brwctrlr.hxx
+++ b/dbaccess/source/ui/inc/brwctrlr.hxx
@@ -71,7 +71,6 @@ namespace dbtools
namespace dbaui
{
-
// =========================================================================
typedef ::cppu::ImplInheritanceHelper9 < OGenericUnoController
@@ -115,6 +114,8 @@ namespace dbaui
::osl::Mutex m_aAsyncLoadSafety; // for multi-thread access to our members
OAsyncronousLink m_aAsyncGetCellFocus;
+ OAsyncronousLink m_aAsyncDisplayError;
+ ::dbtools::SQLExceptionInfo m_aCurrentError;
String m_sStateSaveRecord;
String m_sStateUndoRecord;
@@ -129,7 +130,6 @@ namespace dbaui
sal_Bool m_bLoadCanceled : 1; // the load was canceled somehow
sal_Bool m_bClosingKillOpen : 1; // are we killing the load thread because we are to be suspended ?
- sal_Bool m_bErrorOccured : 1; // see enter-/leaveFormAction
bool m_bCannotSelectUnfiltered : 1; // recieved an DATA_CANNOT_SELECT_UNFILTERED error
protected:
@@ -237,6 +237,8 @@ namespace dbaui
virtual void BeforeDrop();
virtual void AfterDrop();
+ public:
+
protected:
virtual ~SbaXDataBrowserController();
@@ -322,10 +324,7 @@ namespace dbaui
void enterFormAction();
void leaveFormAction();
- bool errorOccured() const { return m_bErrorOccured; }
- // As many form actions don't throw an exception but call their error handler instead we don't have
- // a chance to recognize errors by exception catching.
- // So for error recognition the above methods may be used.
+
// init the formatter if form changes
void initFormatter();
@@ -371,6 +370,8 @@ namespace dbaui
// (the alternative would be to lock the SolarMutex in OnOpenFinished to avoid problems with the needed updates,
// but playing with this mutex seems very hazardous to me ....)
DECL_LINK(OnAsyncGetCellFocus, void*);
+
+ DECL_LINK( OnAsyncDisplayError, void* );
};
//==================================================================
diff --git a/dbaccess/source/ui/querydesign/QueryDesignView.cxx b/dbaccess/source/ui/querydesign/QueryDesignView.cxx
index d02fb11fe54c..e489a0c2a585 100644
--- a/dbaccess/source/ui/querydesign/QueryDesignView.cxx
+++ b/dbaccess/source/ui/querydesign/QueryDesignView.cxx
@@ -1432,7 +1432,7 @@ namespace
if ( SQL_ISRULE(pChild,search_condition) )
eErrorCode = GetORCriteria(_pView,_pSelectionBrw,pChild,nLevel,bHaving,bAddOrOnOneLine);
else
- eErrorCode = GetANDCriteria(_pView,_pSelectionBrw,pChild, bAddOrOnOneLine ? nLevel : nLevel++,bHaving,bAddOrOnOneLine);
+ eErrorCode = GetANDCriteria(_pView,_pSelectionBrw,pChild, bAddOrOnOneLine ? nLevel : nLevel++,bHaving, i == 0 ? false : bAddOrOnOneLine);
}
}
else
@@ -1486,8 +1486,9 @@ namespace
eErrorCode = GetORCriteria(_pView,_pSelectionBrw,pCondition->getChild(1), nLevel2,bHaving,bMustAddOrOnOneLine );
}
// Das erste Element ist (wieder) eine AND-Verknuepfung
- else if ( SQL_ISRULE(pCondition,boolean_term) && pCondition->count() == 3 )
+ else if ( SQL_ISRULE(pCondition,boolean_term) )
{
+ OSL_ENSURE(pCondition->count() == 3,"Illegal definifiton of boolean_term");
eErrorCode = GetANDCriteria(_pView,_pSelectionBrw,pCondition->getChild(0), nLevel,bHaving,bAddOrOnOneLine );
if ( eErrorCode == eOk )
eErrorCode = GetANDCriteria(_pView,_pSelectionBrw,pCondition->getChild(2), nLevel,bHaving,bAddOrOnOneLine );
@@ -2974,6 +2975,7 @@ sal_Bool OQueryDesignView::checkStatement()
!pEntryField->HasCriteria() &&
pEntryField->isNoneFunction() &&
pEntryField->GetOrderDir() == ORDER_NONE &&
+ !pEntryField->IsGroupBy() &&
!pEntryField->GetFunction().getLength() )
rUnUsedFields.push_back(pEntryField);
}
diff --git a/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx b/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx
index fa1b1e82fbd8..6b48bc528776 100644
--- a/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx
+++ b/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx
@@ -1844,7 +1844,7 @@ void OSelectionBrowseBox::AddCondition( const OTableFieldDescRef& rInfo, const S
DBG_CHKTHIS(OSelectionBrowseBox,NULL);
DBG_ASSERT(rInfo.isValid() && !rInfo->IsEmpty(),"AddCondition:: OTableFieldDescRef sollte nicht Empty sein!");
- OTableFieldDescRef pEntry;
+ OTableFieldDescRef pLastEntry;
Reference<XDatabaseMetaData> xMeta = xConnection->getMetaData();
::comphelper::UStringMixEqual bCase(xMeta.is() && xMeta->supportsMixedCaseQuotedIdentifiers());
@@ -1853,7 +1853,7 @@ void OSelectionBrowseBox::AddCondition( const OTableFieldDescRef& rInfo, const S
OTableFields::iterator aEnd = rFields.end();
for(;aIter != aEnd;++aIter)
{
- pEntry = *aIter;
+ OTableFieldDescRef pEntry = *aIter;
const ::rtl::OUString aField = pEntry->GetField();
const ::rtl::OUString aAlias = pEntry->GetAlias();
@@ -1870,22 +1870,9 @@ void OSelectionBrowseBox::AddCondition( const OTableFieldDescRef& rInfo, const S
if(!m_bGroupByUnRelated && pEntry->IsGroupBy())
pEntry->SetVisible(sal_True);
}
- if (!pEntry->GetCriteria(nLevel).getLength() || _bAddOrOnOneLine )
+ if (!pEntry->GetCriteria(nLevel).getLength() )
{
- String sCriteria = rValue;
- if ( _bAddOrOnOneLine )
- {
- String sOldCriteria = pEntry->GetCriteria( nLevel );
- if ( sOldCriteria.Len() )
- {
- sCriteria = String(RTL_CONSTASCII_USTRINGPARAM("("));
- sCriteria += sOldCriteria;
- sCriteria += String(RTL_CONSTASCII_USTRINGPARAM(" OR "));
- sCriteria += rValue;
- sCriteria += String(RTL_CONSTASCII_USTRINGPARAM(")"));
- }
- }
- pEntry->SetCriteria( nLevel, sCriteria);
+ pEntry->SetCriteria( nLevel, rValue);
if(nLevel == (m_nVisibleCount-BROW_CRIT1_ROW-1))
{
RowInserted( GetRowCount()-1, 1, TRUE );
@@ -1894,11 +1881,36 @@ void OSelectionBrowseBox::AddCondition( const OTableFieldDescRef& rInfo, const S
}
m_bVisibleRow[BROW_CRIT1_ROW + nLevel] = sal_True;
break;
+ } // if (!pEntry->GetCriteria(nLevel).getLength() )
+ if ( _bAddOrOnOneLine )
+ {
+ pLastEntry = pEntry;
}
}
+ } // for(;aIter != getFields().end();++aIter)
+ if ( pLastEntry.isValid() )
+ {
+ String sCriteria = rValue;
+ String sOldCriteria = pLastEntry->GetCriteria( nLevel );
+ if ( sOldCriteria.Len() )
+ {
+ sCriteria = String(RTL_CONSTASCII_USTRINGPARAM("( "));
+ sCriteria += sOldCriteria;
+ sCriteria += String(RTL_CONSTASCII_USTRINGPARAM(" OR "));
+ sCriteria += rValue;
+ sCriteria += String(RTL_CONSTASCII_USTRINGPARAM(" )"));
+ }
+ pLastEntry->SetCriteria( nLevel, sCriteria);
+ if(nLevel == (m_nVisibleCount-BROW_CRIT1_ROW-1))
+ {
+ RowInserted( GetRowCount()-1, 1, TRUE );
+ m_bVisibleRow.push_back(sal_True);
+ ++m_nVisibleCount;
+ }
+ m_bVisibleRow[BROW_CRIT1_ROW + nLevel] = sal_True;
}
- if (aIter == getFields().end())
+ else if (aIter == getFields().end())
{
OTableFieldDescRef pTmp = InsertField(rInfo, BROWSER_INVALIDID, sal_False, sal_False );
if ( pTmp->isNumericOrAggreateFunction() && rInfo->IsGroupBy() ) // das GroupBy wird bereits von rInfo "ubernommen
diff --git a/dbaccess/source/ui/querydesign/query.src b/dbaccess/source/ui/querydesign/query.src
index 4dd9cb564b3e..393003b9a4f8 100644
--- a/dbaccess/source/ui/querydesign/query.src
+++ b/dbaccess/source/ui/querydesign/query.src
@@ -310,28 +310,6 @@ String STR_QRY_ILLEGAL_JOIN
Text [ en-US ] = "Join could not be processed" ;
};
-String STR_QUERY_SAVEMODIFIED
-{
- Text [ en-US ] = "The $object$ has been changed.\nDo you want to save the changes?" ;
- Text [ x-comment ] = "For $object$, one of the values of the RSC_QUERY_OBJECT_TYPE resource will be inserted.";
-};
-
-Resource RSC_QUERY_OBJECT_TYPE
-{
- String 1
- {
- Text [ en-US ] = "table view";
- };
- String 2
- {
- Text [ en-US ] = "query";
- };
- String 3
- {
- Text [ en-US ] = "SQL statement";
- };
-};
-
String STR_SVT_SQL_SYNTAX_ERROR
{
Text [ en-US ] = "Syntax error in SQL statement" ;
@@ -401,20 +379,42 @@ String STR_VIEWDESIGN
Text [ en-US ] = " - %PRODUCTNAME Base: View Design";
};
+String STR_QUERY_SAVEMODIFIED
+{
+ Text [ en-US ] = "$object$ has been changed.\nDo you want to save the changes?" ;
+ Text [ x-comment ] = "For $object$, one of the values of the RSC_QUERY_OBJECT_TYPE resource will be inserted.";
+};
+
String STR_ERROR_PARSING_STATEMENT
{
- Text [ en-US ] = "The SQL command which constitutes the $object$ could not be parsed.";
+ Text [ en-US ] = "$object$ is based on an SQL command which could not be parsed.";
Text [ x-comment ] = "For $object$, one of the values of the RSC_QUERY_OBJECT_TYPE resource "
"(except \"SQL command\", which doesn't make sense here) will be inserted.";
};
String STR_INFO_OPENING_IN_SQL_VIEW
{
- Text [ en-US ] = "The $object$ will be opened in SQL view.";
+ Text [ en-US ] = "$object$ will be opened in SQL view.";
Text [ x-comment ] = "For $object$, one of the values of the RSC_QUERY_OBJECT_TYPE resource "
"(except \"SQL command\", which doesn't make sense here) will be inserted.";
};
+Resource RSC_QUERY_OBJECT_TYPE
+{
+ String 1
+ {
+ Text [ en-US ] = "The table view";
+ };
+ String 2
+ {
+ Text [ en-US ] = "The query";
+ };
+ String 3
+ {
+ Text [ en-US ] = "The SQL statement";
+ };
+};
+
String STR_STATEMENT_WITHOUT_RESULT_SET
{
Text [ en-US ] = "The query does not create a result set, and thus cannot be part of another query.";
diff --git a/dbaccess/source/ui/querydesign/querycontroller.cxx b/dbaccess/source/ui/querydesign/querycontroller.cxx
index d29fa9b3ab5a..ca1bc56f01ef 100644
--- a/dbaccess/source/ui/querydesign/querycontroller.cxx
+++ b/dbaccess/source/ui/querydesign/querycontroller.cxx
@@ -717,6 +717,8 @@ void OQueryController::Execute(sal_uInt16 _nId, const Sequence< PropertyValue >&
pNodeTmp = pTemp->getChild(1);
::connectivity::OSQLParseNode::absorptions(pNodeTmp);
pNodeTmp = pTemp->getChild(1);
+ OSQLParseNode::compress(pNodeTmp);
+ pNodeTmp = pTemp->getChild(1);
} // if ( pCondition ) // no where clause
::rtl::OUString sTemp;
pNode->parseNodeToStr(sTemp,getConnection());
diff --git a/dbaccess/source/ui/tabledesign/TEditControl.cxx b/dbaccess/source/ui/tabledesign/TEditControl.cxx
index 1c8bf569ea19..9694d285c511 100644
--- a/dbaccess/source/ui/tabledesign/TEditControl.cxx
+++ b/dbaccess/source/ui/tabledesign/TEditControl.cxx
@@ -1312,9 +1312,9 @@ Any OTableEditorCtrl::GetCellData( long nRow, sal_uInt16 nColId )
String OTableEditorCtrl::GetCellText( long nRow, sal_uInt16 nColId ) const
{
DBG_CHKTHIS(OTableEditorCtrl,NULL);
- //////////////////////////////////////////////////////////////////////
- // Text aus Dokumentdaten holen
- return ::comphelper::getString(const_cast<OTableEditorCtrl*>(this)->GetCellData( nRow, nColId ));
+ ::rtl::OUString sCellText;
+ const_cast< OTableEditorCtrl* >( this )->GetCellData( nRow, nColId ) >>= sCellText;
+ return sCellText;
}
//------------------------------------------------------------------------------
diff --git a/dbaccess/source/ui/uno/copytablewizard.cxx b/dbaccess/source/ui/uno/copytablewizard.cxx
index 9fa9d828d755..1f8fd4dc4dbc 100644
--- a/dbaccess/source/ui/uno/copytablewizard.cxx
+++ b/dbaccess/source/ui/uno/copytablewizard.cxx
@@ -1018,18 +1018,18 @@ namespace
else
(m_xDest.get()->*_pSetter)( m_rDestPos, value );
}
-
- template< typename VALUE_TYPE >
+ template< typename VALUE_TYPE >
void transferComplexValue( VALUE_TYPE ( SAL_CALL XRow::*_pGetter )( sal_Int32 ),
void (SAL_CALL XParameters::*_pSetter)( sal_Int32, const VALUE_TYPE& ) )
{
- VALUE_TYPE value( (m_xSource.get()->*_pGetter)( m_rSourcePos ) );
+ const VALUE_TYPE value( (m_xSource.get()->*_pGetter)( m_rSourcePos ) );
+ {
if ( m_xSource->wasNull() )
m_xDest->setNull( m_rDestPos, m_rColTypes[ m_rSourcePos ] );
else
(m_xDest.get()->*_pSetter)( m_rDestPos, value );
+ }
}
-
private:
const sal_Int32& m_rSourcePos;
const sal_Int32& m_rDestPos;
@@ -1193,7 +1193,9 @@ void CopyTableWizard::impl_copyRows_throw( const Reference< XResultSet >& _rxSou
bContinue = _rxSourceResultSet->next();
if ( !bContinue )
+ {
break;
+ }
++nRowCount;
sal_Bool bInsertAutoIncrement = sal_True;
diff --git a/dbaccess/source/ui/uno/makefile.mk b/dbaccess/source/ui/uno/makefile.mk
index d29d881d7a26..11a1c7c5fbbd 100644
--- a/dbaccess/source/ui/uno/makefile.mk
+++ b/dbaccess/source/ui/uno/makefile.mk
@@ -51,8 +51,14 @@ SRC1FILES = \
copytablewizard.src
# ... object files ............................
+# workaround for issue http://qa.openoffice.org/issues/show_bug.cgi?id=102305 Linux specific
+.IF "$(COM)" == "GCC"
+NOOPTFILES=\
+ $(SLO)$/copytablewizard.obj
+.ENDIF
SLOFILES= \
+ $(SLO)$/copytablewizard.obj \
$(SLO)$/composerdialogs.obj \
$(SLO)$/unosqlmessage.obj \
$(SLO)$/unoadmin.obj \
@@ -67,7 +73,6 @@ SLOFILES= \
$(SLO)$/ColumnControl.obj \
$(SLO)$/ColumnPeer.obj \
$(SLO)$/dbinteraction.obj \
- $(SLO)$/copytablewizard.obj \
$(SLO)$/textconnectionsettings_uno.obj
# --- Targets ----------------------------------
diff --git a/reportdesign/source/ui/inc/FixedTextColor.hxx b/reportdesign/source/ui/inc/FixedTextColor.hxx
index c80a49a9a557..32c139fa847b 100644
--- a/reportdesign/source/ui/inc/FixedTextColor.hxx
+++ b/reportdesign/source/ui/inc/FixedTextColor.hxx
@@ -31,10 +31,6 @@
#ifndef INCLUDED_FIXEDTEXTCOLOR_HXX
#define INCLUDED_FIXEDTEXTCOLOR_HXX
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_reportdesign.hxx"
-
-
/** === begin UNO includes === **/
#include <com/sun/star/beans/PropertyChangeEvent.hpp>
#include <com/sun/star/container/XChild.hpp>
diff --git a/reportdesign/source/ui/inc/FormattedFieldBeautifier.hxx b/reportdesign/source/ui/inc/FormattedFieldBeautifier.hxx
index bc5d406d1e5c..5c835d983ff3 100644
--- a/reportdesign/source/ui/inc/FormattedFieldBeautifier.hxx
+++ b/reportdesign/source/ui/inc/FormattedFieldBeautifier.hxx
@@ -31,10 +31,6 @@
#ifndef INCLUDED_FORMATTEDFIELDBEAUTIFIER_HXX
#define INCLUDED_FORMATTEDFIELDBEAUTIFIER_HXX
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_reportdesign.hxx"
-
-
/** === begin UNO includes === **/
#include <com/sun/star/beans/PropertyChangeEvent.hpp>
#include <com/sun/star/container/XChild.hpp>
diff --git a/reportdesign/source/ui/inc/IReportControllerObserver.hxx b/reportdesign/source/ui/inc/IReportControllerObserver.hxx
index 2a51e1a655eb..e171fc386967 100644
--- a/reportdesign/source/ui/inc/IReportControllerObserver.hxx
+++ b/reportdesign/source/ui/inc/IReportControllerObserver.hxx
@@ -31,9 +31,6 @@
#ifndef INCLUDED_BEAUTIFIER_HXX
#define INCLUDED_BEAUTIFIER_HXX
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_reportdesign.hxx"
-
/** === begin UNO includes === **/
#include <com/sun/star/beans/PropertyChangeEvent.hpp>
/** === end UNO includes === **/