2009-06-29 20:53:25 +0200 fs r273484 : #i103138# Rectangle conversion 2009-06-29 20:51:50 +0200 fs r273483 : #i103138# yet more refactoring, now also setting the proper zoom level at the proper point in time 2009-06-29 13:40:26 +0200 fs r273470 : added svn:ignore to ignore output paths 2009-06-29 10:08:54 +0200 fs r273455 : #i103138# refactored the code for positioning/zooming the control Basically, we now allow adjustControlGeometry_throw (formerly known as positionControl_throw and setControlZoom) to take an additional ViewTransformation parameter, describing the transformation to obtain the actual control position/size. Consequently, positionControl itself also allows for a ViewTransformation parameter. This has become necessary since during painting, the device which we created our control for might not necessarily have a proper MapMode set. In this case, if we would use this map mode for calculating the control's position/size, this would lead to wrong results. Note that this problem was introduced by the fix for #i101398#: During the fix, we postponed the control creation to a later time (when it is really needed). At this later time, the MapMode at the device is broken, at the earlier time where we formerly crearted the control (createPrimitive2DSequence), it is not yet broken. Whether or not the MapMode is defined as "broken" might depend on one's point of view, however ... I consider it broken, since: - we need the map mode to obtain the proper zoom level, which is to be forwarded to the control - there are scenarios where the MapMode is *not* set to MAP_PIXEL (in those scenarios, everything works fine), and there are scenarios where it *is* set to MAP_PIXEL (in those the bug 103138 appears). It somehow feels wrong that one cannot rely on the device's map mode this way, but on the other hand one has no possibility to obtain the current zoom by other means. Note that one issue (still to be submitted) is left: In the page pane of a Draw/Impress document, controls have a wrong text size. This is because in this pane, the above-mentioned "broken" map mode is used, which means the controls have a zoom of "1:1" set, which is wrong here. 2009-06-25 13:41:35 +0200 msc r273380 : #100000# the tabs changed die to new properties 2009-06-24 12:42:40 +0200 msc r273330 : #102082# remove issue warning 2009-06-22 10:43:14 +0200 fs r273201 : createPrimitive2DSequence: care for being disposed 2009-06-18 12:35:13 +0200 oj r273109 : #i102305# make nooptfiles for gcc 2009-06-17 12:14:37 +0200 oj r273056 : #i102305# fix for linux 2009-06-17 07:20:22 +0200 oj r273046 : #i102305# move ValueTransfer into the for loop to avoid a crash under Linux 2009-06-17 07:17:28 +0200 oj r273045 : #i102305# use varchar 2009-06-15 14:11:27 +0200 fs r272983 : added since tag 2009-06-15 12:11:39 +0200 oj r272973 : #i102305# SAL_DLLPUBLIC_EXPORT inserted 2009-06-15 11:08:53 +0200 fs r272969 : #i10000# 2009-06-15 09:25:13 +0200 fs r272963 : merging fix for P1 issue #i102701# 2009-06-11 11:31:24 +0200 fs r272858 : #i10000# copied the fix which before the rebase was done in ../dialog/macropg.src 2009-06-11 09:38:14 +0200 fs r272846 : CWS-TOOLING: rebase CWS dba32c to trunk@272827 (milestone: DEV300:m50) 2009-06-02 09:53:10 +0200 fs r272483 : #i10000# 2009-05-29 15:55:03 +0200 fs r272465 : #i100818# 2009-05-29 12:58:43 +0200 fs r272452 : don't apply comphelper::getString on possibly VOID any 2009-05-29 10:38:35 +0200 oj r272437 : #i101519# handle where condition 2009-05-29 09:53:39 +0200 fs r272434 : #i100818# call into releaseStubs /without/ locked GlobalMutex 2009-05-28 07:53:44 +0200 oj r272375 : #i101369# parse tree changed 2009-05-27 14:53:36 +0200 fs r272347 : #i10000# 2009-05-27 09:29:15 +0200 oj r272327 : #i101626# check for double before hard cast 2009-05-27 09:13:58 +0200 oj r272326 : #i101626# handle void correctly 2009-05-27 08:04:39 +0200 oj r272321 : #i102256# wrong method signature used 2009-05-27 07:55:52 +0200 oj r272320 : #i101519# look up parameter typ if used in function 2009-05-27 06:49:07 +0200 oj r272319 : #i101519# set parameter from rowset as well 2009-05-26 13:30:56 +0200 oj r272297 : #i101987# impl XBatchExecution 2009-05-26 12:44:34 +0200 oj r272293 : #i101700# check if group is not set 2009-05-26 12:16:53 +0200 oj r272290 : #i101369# resolved some reduce7reduce problems with boolean_term and search_condition 2009-05-26 12:12:42 +0200 oj r272289 : #i101369# fix for or on one line criteria 2009-05-25 16:02:25 +0200 fs r272257 : #i999704# +PROPERTY_MOUSE_WHEEL_BEHAVIOR 2009-05-25 16:01:55 +0200 fs r272256 : merging the changes from CWS dba32b herein 2009-05-25 15:49:57 +0200 fs r272254 : #i999704# 2009-05-25 15:32:57 +0200 fs r272252 : #i99704# grid columns also to respect the MouseWheelBehavior property 2009-05-25 15:23:43 +0200 fs r272251 : don't pass empty Anys to ::comphelper::getString 2009-05-25 14:48:43 +0200 fs r272248 : merged changes from CWS dba32b herein 2009-05-25 14:44:40 +0200 fs r272247 : #i99704# support new MouseWheelBehavior property 2009-05-25 14:43:18 +0200 fs r272246 : #i99704# WheelWithoutFocus (peer property) superseded by MouseWheelBehavior (model property) 2009-05-25 14:41:03 +0200 fs r272245 : #i99704# no need to set the mouse wheel behavior at the peer, this is now a model property, having the right default 2009-05-25 14:39:31 +0200 fs r272243 : removed dead import 2009-05-25 14:35:36 +0200 fs r272242 : the new EnableVisible doesn't make sense for grid columns 2009-05-25 14:34:33 +0200 fs r272241 : #i99704# +MouseWheelBehavior - allow to enable/disable the mouse wheel for the control, or make it focus-dependent 2009-05-25 14:26:11 +0200 fs r272240 : #i99704# change MouseSettings wheel flag (NoWheelActionWithoutFocus) to a three-state option, allowing to completely ignore the mouse wheel 2009-05-23 21:35:59 +0200 fs r272213 : localize 'sub component opened/closed' event 2009-05-22 21:42:47 +0200 fs r272211 : #i102003# 2009-05-22 21:42:20 +0200 fs r272210 : grammar 2009-05-22 21:36:10 +0200 fs r272209 : #i102140# load only once, not twice, and show error messages during loading (and during any form action, that is) asynchronously 2009-05-22 21:35:11 +0200 fs r272208 : #i102140# +clear 2009-05-22 14:50:30 +0200 fs r272194 : #i102139# for newly created DB docs, set the MacroExecutionMode to USE_CONFIG 2009-05-22 12:03:42 +0200 fs r272180 : #i88878# provided by noel.power@novell.com implement a visibility property (EnableVisible) for toolkit controls, and usage in forms and UNO dialogs 2009-05-15 15:37:31 +0200 fs r271942 : #i100671# corrected some @since tags, so autodoc has better chances of correctly reading them 2009-05-15 15:33:11 +0200 fs r271940 : don't call comphelper::getFOO for VOID values 2009-05-15 15:08:31 +0200 fs r271937 : includes 2009-05-15 13:39:22 +0200 fs r271934 : #i101398# createPrimitive2DSequence: when we already have a control, use the old code. In particular, call positionControlForPaint 2009-05-15 12:33:48 +0200 fs r271933 : make the geometry a part of the ControlPrimitive2D's identity 2009-05-15 10:15:44 +0200 fs r271928 : #i10000# 2009-05-14 20:55:38 +0200 fs r271921 : #i101398# don't reuse the name PRIMITIVE_ID_CONTROLPRIMITIVE2D, make the name of our own ControlPrimitive2D unique 2009-05-14 20:55:31 +0200 fs r271920 : #i101398# don't reuse the name PRIMITIVE_ID_CONTROLPRIMITIVE2D, make the name of our own ControlPrimitive2D unique 2009-05-14 20:23:23 +0200 fs r271919 : #i101622# 2009-05-14 16:04:38 +0200 fs r271898 : don't use comphelper::getInt32 on voids 2009-05-14 16:04:12 +0200 fs r271897 : merge fix for issue whose number just slipped my memory ... (originally fixed in CWS dba32b) 2009-05-14 15:36:55 +0200 fs r271895 : merging changes from DEV300:m48 2009-05-07 14:43:19 +0200 fs r271670 : #i101477# 2009-05-07 14:37:30 +0200 fs r271668 : #i101477# 2009-05-07 09:27:30 +0200 oj r271628 : #i101343# remove pch 2009-05-06 09:36:02 +0200 fs r271568 : getFoo: diagnostics 2009-05-04 09:23:06 +0200 oj r271438 : CWS-TOOLING: rebase CWS dba32c to trunk@271427 (milestone: DEV300:m47) 2009-04-29 23:18:13 +0200 fs r271394 : #i101398# use a dedicated 2DPrimitive for UNO Controls, which is able to provide the B2DRange *without* actually creating the control 2009-04-29 13:52:25 +0200 fs r271366 : #i101308#
573 lines
38 KiB
C++
573 lines
38 KiB
C++
/*************************************************************************
|
|
*
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* Copyright 2008 by Sun Microsystems, Inc.
|
|
*
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
|
*
|
|
* $RCSfile: RowSet.hxx,v $
|
|
* $Revision: 1.51 $
|
|
*
|
|
* This file is part of OpenOffice.org.
|
|
*
|
|
* OpenOffice.org is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License version 3
|
|
* only, as published by the Free Software Foundation.
|
|
*
|
|
* OpenOffice.org is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License version 3 for more details
|
|
* (a copy is included in the LICENSE file that accompanied this code).
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* version 3 along with OpenOffice.org. If not, see
|
|
* <http://www.openoffice.org/license.html>
|
|
* for a copy of the LGPLv3 License.
|
|
*
|
|
************************************************************************/
|
|
|
|
#ifndef DBACCESS_CORE_API_ROWSET_HXX
|
|
#define DBACCESS_CORE_API_ROWSET_HXX
|
|
|
|
#include "apitools.hxx"
|
|
#include "RowSetBase.hxx"
|
|
|
|
/** === begin UNO includes === **/
|
|
#ifndef _COM_SUN_STAR_SDBC_XPREPAREDSTATEMENT_HPP_
|
|
#include <com/sun/star/sdbc/XPreparedStatement.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_SDBC_XCONNECTION_HPP_
|
|
#include <com/sun/star/sdbc/XConnection.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_SDB_XSINGLESELECTQUERYCOMPOSER_HPP_
|
|
#include <com/sun/star/sdb/XSingleSelectQueryComposer.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_SDB_XRESULTSETACCESS_HPP_
|
|
#include <com/sun/star/sdb/XResultSetAccess.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_SDBC_XROWSETLISTENER_HPP_
|
|
#include <com/sun/star/sdbc/XRowSetListener.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_SDBC_XROWUPDATE_HPP_
|
|
#include <com/sun/star/sdbc/XRowUpdate.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_SDBC_XRESULTSETUPDATE_HPP_
|
|
#include <com/sun/star/sdbc/XResultSetUpdate.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_SDBC_XPARAMETERS_HPP_
|
|
#include <com/sun/star/sdbc/XParameters.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_SDB_XROWSETAPPROVEBROADCASTER_HPP_
|
|
#include <com/sun/star/sdb/XRowSetApproveBroadcaster.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_SDBC_RESULTSETTYPE_HPP_
|
|
#include <com/sun/star/sdbc/ResultSetType.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_UTIL_XCANCELLABLE_HPP_
|
|
#include <com/sun/star/util/XCancellable.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_SDBCX_XDELETEROWS_HPP_
|
|
#include <com/sun/star/sdbcx/XDeleteRows.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_SDB_XCOMPLETEDEXECUTION_HPP_
|
|
#include <com/sun/star/sdb/XCompletedExecution.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_SDB_ROWSETVETOEXCEPTION_HPP_
|
|
#include <com/sun/star/sdb/RowSetVetoException.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_SDB_XSINGLESELECTQUERYANALYZER_HPP_
|
|
#include <com/sun/star/sdb/XSingleSelectQueryAnalyzer.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_SDB_XSINGLESELECTQUERYCOMPOSER_HPP_
|
|
#include <com/sun/star/sdb/XSingleSelectQueryComposer.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_SDB_XPARAMETERSSUPPLIER_HPP_
|
|
#include <com/sun/star/sdb/XParametersSupplier.hpp>
|
|
#endif
|
|
/** === end UNO includes === **/
|
|
|
|
#include <cppuhelper/compbase11.hxx>
|
|
#include <connectivity/paramwrapper.hxx>
|
|
#include <connectivity/FValue.hxx>
|
|
#include <connectivity/warningscontainer.hxx>
|
|
|
|
namespace dbaccess
|
|
{
|
|
typedef ::cppu::WeakAggComponentImplHelper11 < ::com::sun::star::sdb::XResultSetAccess
|
|
, ::com::sun::star::sdb::XRowSetApproveBroadcaster
|
|
, ::com::sun::star::sdbcx::XDeleteRows
|
|
, ::com::sun::star::sdbc::XParameters
|
|
, ::com::sun::star::lang::XEventListener
|
|
, ::com::sun::star::sdbc::XResultSetUpdate
|
|
, ::com::sun::star::sdbc::XRowUpdate
|
|
, ::com::sun::star::util::XCancellable
|
|
, ::com::sun::star::sdb::XCompletedExecution
|
|
, ::com::sun::star::sdb::XParametersSupplier
|
|
, ::com::sun::star::sdbc::XWarningsSupplier
|
|
> ORowSet_BASE1;
|
|
|
|
class OTableContainer;
|
|
class ORowSet : public comphelper::OBaseMutex
|
|
, public ORowSet_BASE1
|
|
, public ORowSetBase
|
|
, public ::comphelper::OPropertyArrayUsageHelper<ORowSet>
|
|
{
|
|
friend class ORowSetClone;
|
|
|
|
::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > m_xOldConnection;
|
|
::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > m_xActiveConnection;
|
|
::com::sun::star::uno::Any m_aActiveConnection;
|
|
::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > m_xTypeMap;
|
|
::com::sun::star::uno::Any m_aTypeMap;
|
|
::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XPreparedStatement > m_xStatement;
|
|
::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSingleSelectQueryComposer > m_xComposer;
|
|
::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > m_xColumns; // the columns from a table or query
|
|
|
|
connectivity::OWeakRefArray m_aClones;
|
|
/** our parameters as XPropertySet instances and ORowSetValue instances
|
|
*/
|
|
::dbtools::param::ParametersContainerRef m_pParameters;
|
|
/** our parameters values, used when we do not yet have a parameters container
|
|
(since we have not been executed, yet)
|
|
*/
|
|
ORowSetValueVector m_aPrematureParamValues;
|
|
ORowSetValueVector m_aParameterValueForCache;
|
|
::std::bit_vector m_aParametersSet;
|
|
|
|
::cppu::OInterfaceContainerHelper m_aRowsetListeners;
|
|
::cppu::OInterfaceContainerHelper m_aApproveListeners;
|
|
|
|
::dbtools::WarningsContainer m_aWarnings;
|
|
|
|
OTableContainer* m_pTables;
|
|
|
|
rtl::OUString m_aCommand;
|
|
rtl::OUString m_aDataSourceName;
|
|
rtl::OUString m_aURL;
|
|
rtl::OUString m_aUser;
|
|
rtl::OUString m_aPassword;
|
|
rtl::OUString m_aFilter;
|
|
rtl::OUString m_aHavingClause;
|
|
rtl::OUString m_aGroupBy;
|
|
rtl::OUString m_aOrder;
|
|
rtl::OUString m_aActiveCommand;
|
|
rtl::OUString m_aCursorName;
|
|
rtl::OUString m_aUpdateCatalogName; // is set by a query
|
|
rtl::OUString m_aUpdateSchemaName; // is set by a query
|
|
rtl::OUString m_aUpdateTableName; // is set by a query
|
|
|
|
sal_Int32 m_nFetchDirection;
|
|
sal_Int32 m_nFetchSize;
|
|
sal_Int32 m_nMaxFieldSize;
|
|
sal_Int32 m_nMaxRows;
|
|
sal_Int32 m_nQueryTimeOut;
|
|
sal_Int32 m_nCommandType;
|
|
sal_Int32 m_nTransactionIsolation;
|
|
sal_Int32 m_nPrivileges;
|
|
sal_Int32 m_nLastKnownRowCount;
|
|
oslInterlockedCount m_nInAppend;
|
|
sal_Bool m_bLastKnownRowCountFinal;
|
|
sal_Bool m_bUseEscapeProcessing ;
|
|
sal_Bool m_bApplyFilter ;
|
|
sal_Bool m_bCommandFacetsDirty; // any of the facets which define the active command is dirty
|
|
sal_Bool m_bModified ;
|
|
sal_Bool m_bRebuildConnOnExecute ;
|
|
sal_Bool m_bIsBookmarable ;
|
|
sal_Bool m_bNew ;
|
|
sal_Bool m_bCanUpdateInsertedRows;
|
|
sal_Bool m_bOwnConnection;
|
|
|
|
private:
|
|
/** builds m_aActiveCommand from our settings
|
|
|
|
@return
|
|
whether we should use escape processing before executing the actual command. This is determined
|
|
from our own EscapeProcessing property, and possibly overruled by the respective property
|
|
of a query we're based on.
|
|
*/
|
|
sal_Bool impl_buildActiveCommand_throw();
|
|
|
|
/** initializes our query composer, and everything which has to do with it
|
|
|
|
If we don't use escape processing, then we don't have a composer, and everything
|
|
related to it. Nonetheless, _out_rCommandToExecute and the return value are properly
|
|
initialized.
|
|
|
|
@param _out_rCommandToExecute
|
|
The command which is to be executed, according to the current settings -
|
|
it is built from our active command plus our current filter/order criterions.
|
|
|
|
@return
|
|
whether we should use escape processing before executing the actual command. This is determined
|
|
from our own EscapeProcessing property, and possibly overruled by the respective property
|
|
of a query we're based on.
|
|
Effectively, this value determines whether or not we actually have an composer (m_xComposer)
|
|
and dependent information (such as the parameters container).
|
|
|
|
@precond
|
|
m_xActiveConnection points to a valid SDB-level connection
|
|
|
|
@throws com::sun::star::sdb::SQLException
|
|
if an database-related error occured
|
|
|
|
@throws com::sun::star::uno::RuntimeException
|
|
if any of the components involved throws a com::sun::star::uno::RuntimeException
|
|
*/
|
|
sal_Bool impl_initComposer_throw( ::rtl::OUString& _out_rCommandToExecute );
|
|
|
|
/** returns the table container of our active connection
|
|
|
|
If our connection is able to provide a tables container, this one is returned.
|
|
Else, if m_pTables is not <NULL/>, this one will returned.
|
|
Else, m_pTables will be constructed and returned.
|
|
|
|
@precond m_xActiveConnection is not <NULL/>
|
|
@throws ::com::sun::star::sdbc::SQLException
|
|
if retrieving or constructing the tables container goes wrong
|
|
|
|
@see impl_resetTables_nothrow
|
|
*/
|
|
::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >
|
|
impl_getTables_throw();
|
|
|
|
/** cleans up m_pTables, and resets it to <NULL/>
|
|
*/
|
|
void impl_resetTables_nothrow();
|
|
|
|
/** prepares and executes our command
|
|
*/
|
|
::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet >
|
|
impl_prepareAndExecute_throw();
|
|
|
|
::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > calcConnection(const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& _rxHandler) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException );
|
|
// free clones and ParseTree. Plus, if _bComplete is <TRUE/>, *all* other associated resources
|
|
void freeResources( bool _bComplete );
|
|
|
|
// fire a change for one column
|
|
// _nPos starts at zero
|
|
void firePropertyChange(sal_Int32 _nPos,const ::connectivity::ORowSetValue& _rNewValue);
|
|
|
|
/// informs the clones (and ourself) that we are going to delete a record with a given bookmark
|
|
void notifyRowSetAndClonesRowDelete( const ::com::sun::star::uno::Any& _rBookmark );
|
|
|
|
/// inform the clones (and ourself) that we have deleted a record with a given bookmark
|
|
void notifyRowSetAndClonesRowDeleted( const ::com::sun::star::uno::Any& _rBookmark, sal_Int32 _nPos );
|
|
|
|
void checkUpdateIterator();
|
|
const connectivity::ORowSetValue& getInsertValue(sal_Int32 columnIndex);
|
|
void setParameter(sal_Int32 parameterIndex, const connectivity::ORowSetValue& x);
|
|
// resizes the parameter vector if nescessary
|
|
::connectivity::ORowSetValue& getParameterStorage( sal_Int32 parameterIndex );
|
|
|
|
void updateValue(sal_Int32 columnIndex,const connectivity::ORowSetValue& x);
|
|
void checkUpdateConditions(sal_Int32 columnIndex);
|
|
|
|
protected:
|
|
virtual void SAL_CALL setFastPropertyValue_NoBroadcast(sal_Int32 nHandle,const ::com::sun::star::uno::Any& rValue) throw (::com::sun::star::uno::Exception);
|
|
virtual void SAL_CALL getFastPropertyValue(::com::sun::star::uno::Any& rValue,sal_Int32 nHandle) const;
|
|
virtual void getPropertyDefaultByHandle( sal_Int32 _nHandle, ::com::sun::star::uno::Any& _rDefault ) const;
|
|
|
|
virtual void fireRowcount();
|
|
void notifyAllListenersRowBeforeChange(::osl::ResettableMutexGuard& _rGuard,const ::com::sun::star::sdb::RowChangeEvent &rEvt);
|
|
void notifyAllListenersRowChanged(::osl::ResettableMutexGuard& _rGuard,const ::com::sun::star::lang::EventObject& rEvt);
|
|
virtual sal_Bool notifyAllListenersCursorBeforeMove(::osl::ResettableMutexGuard& _rGuard);
|
|
virtual void notifyAllListenersCursorMoved(::osl::ResettableMutexGuard& _rGuard);
|
|
virtual void notifyAllListeners(::osl::ResettableMutexGuard& _rGuard);
|
|
|
|
virtual void doCancelModification( );
|
|
virtual sal_Bool isModification( );
|
|
virtual sal_Bool isModified( );
|
|
virtual sal_Bool isNew( );
|
|
|
|
virtual ~ORowSet();
|
|
|
|
public:
|
|
ORowSet(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >&);
|
|
|
|
// com::sun::star::lang::XTypeProvider
|
|
virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException);
|
|
|
|
// com::sun::star::uno::XInterface
|
|
virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw (::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL acquire() throw();
|
|
virtual void SAL_CALL release() throw();
|
|
|
|
// com::sun::star::lang::XUnoTunnel
|
|
virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// com::sun::star::uno::XAggregation
|
|
virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type& aType ) throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// ::com::sun::star::lang::XServiceInfo
|
|
virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// ::com::sun::star::lang::XServiceInfo - static methods
|
|
static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_static(void) throw( ::com::sun::star::uno::RuntimeException );
|
|
static ::rtl::OUString getImplementationName_static(void) throw( ::com::sun::star::uno::RuntimeException );
|
|
static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
|
|
SAL_CALL Create(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >&);
|
|
|
|
// OComponentHelper
|
|
virtual void SAL_CALL disposing(void);
|
|
|
|
// ::com::sun::star::lang::XEventListener
|
|
virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// ::com::sun::star::sdbc::XCloseable
|
|
virtual void SAL_CALL close( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
|
|
// comphelper::OPropertyArrayUsageHelper
|
|
virtual ::cppu::IPropertyArrayHelper* createArrayHelper( ) const;
|
|
|
|
// cppu::OPropertySetHelper
|
|
virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper();
|
|
|
|
// ::com::sun::star::sdbc::XResultSet
|
|
virtual sal_Int32 SAL_CALL getRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL refreshRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
|
|
// XCompletedExecution
|
|
virtual void SAL_CALL executeWithCompletion( const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& handler ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
|
|
// XParametersSupplier
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL getParameters( ) throw (::com::sun::star::uno::RuntimeException);
|
|
|
|
// ::com::sun::star::sdbc::XRow
|
|
virtual sal_Bool SAL_CALL wasNull( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual ::rtl::OUString SAL_CALL getString( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL getBoolean( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Int8 SAL_CALL getByte( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Int16 SAL_CALL getShort( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Int32 SAL_CALL getInt( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Int64 SAL_CALL getLong( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual float SAL_CALL getFloat( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual double SAL_CALL getDouble( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getBytes( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::util::Date SAL_CALL getDate( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::util::Time SAL_CALL getTime( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::util::DateTime SAL_CALL getTimestamp( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getBinaryStream( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getCharacterStream( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Any SAL_CALL getObject( sal_Int32 columnIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& typeMap ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRef > SAL_CALL getRef( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XBlob > SAL_CALL getBlob( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XClob > SAL_CALL getClob( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XArray > SAL_CALL getArray( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
|
|
// ::com::sun::star::sdbc::XRowUpdate
|
|
virtual void SAL_CALL updateNull( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL updateBoolean( sal_Int32 columnIndex, sal_Bool x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL updateByte( sal_Int32 columnIndex, sal_Int8 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL updateShort( sal_Int32 columnIndex, sal_Int16 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL updateInt( sal_Int32 columnIndex, sal_Int32 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL updateLong( sal_Int32 columnIndex, sal_Int64 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL updateFloat( sal_Int32 columnIndex, float x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL updateDouble( sal_Int32 columnIndex, double x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL updateString( sal_Int32 columnIndex, const ::rtl::OUString& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL updateBytes( sal_Int32 columnIndex, const ::com::sun::star::uno::Sequence< sal_Int8 >& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL updateDate( sal_Int32 columnIndex, const ::com::sun::star::util::Date& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL updateTime( sal_Int32 columnIndex, const ::com::sun::star::util::Time& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL updateTimestamp( sal_Int32 columnIndex, const ::com::sun::star::util::DateTime& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL updateBinaryStream( sal_Int32 columnIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL updateCharacterStream( sal_Int32 columnIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL updateObject( sal_Int32 columnIndex, const ::com::sun::star::uno::Any& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL updateNumericObject( sal_Int32 columnIndex, const ::com::sun::star::uno::Any& x, sal_Int32 scale ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
|
|
// ::com::sun::star::sdbc::XResultSetUpdate
|
|
virtual void SAL_CALL insertRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL updateRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL deleteRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL cancelRowUpdates( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL moveToInsertRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL moveToCurrentRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
|
|
// ::com::sun::star::sdbc::XRowSet
|
|
virtual void SAL_CALL execute( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL addRowSetListener( const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSetListener >& listener ) throw(::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL removeRowSetListener( const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSetListener >& listener ) throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// ::com::sun::star::sdb::XRowSetApproveBroadcaster
|
|
virtual void SAL_CALL addRowSetApproveListener( const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XRowSetApproveListener >& listener ) throw(::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL removeRowSetApproveListener( const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XRowSetApproveListener >& listener ) throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// ::com::sun::star::sdb::XResultSetAccess
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL createResultSet( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
|
|
// ::com::sun::star::util::XCancellable
|
|
virtual void SAL_CALL cancel( ) throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// ::com::sun::star::sdbcx::XDeleteRows
|
|
virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL deleteRows( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& rows ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
|
|
// XParameters
|
|
virtual void SAL_CALL setNull( sal_Int32 parameterIndex, sal_Int32 sqlType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setObjectNull( sal_Int32 parameterIndex, sal_Int32 sqlType, const ::rtl::OUString& typeName ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setBoolean( sal_Int32 parameterIndex, sal_Bool x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setByte( sal_Int32 parameterIndex, sal_Int8 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setShort( sal_Int32 parameterIndex, sal_Int16 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setInt( sal_Int32 parameterIndex, sal_Int32 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setLong( sal_Int32 parameterIndex, sal_Int64 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setFloat( sal_Int32 parameterIndex, float x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setDouble( sal_Int32 parameterIndex, double x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setString( sal_Int32 parameterIndex, const ::rtl::OUString& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setBytes( sal_Int32 parameterIndex, const ::com::sun::star::uno::Sequence< sal_Int8 >& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setDate( sal_Int32 parameterIndex, const ::com::sun::star::util::Date& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setTime( sal_Int32 parameterIndex, const ::com::sun::star::util::Time& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setTimestamp( sal_Int32 parameterIndex, const ::com::sun::star::util::DateTime& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setBinaryStream( sal_Int32 parameterIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setCharacterStream( sal_Int32 parameterIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setObject( sal_Int32 parameterIndex, const ::com::sun::star::uno::Any& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setObjectWithInfo( sal_Int32 parameterIndex, const ::com::sun::star::uno::Any& x, sal_Int32 targetSqlType, sal_Int32 scale ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setRef( sal_Int32 parameterIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRef >& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setBlob( sal_Int32 parameterIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XBlob >& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setClob( sal_Int32 parameterIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XClob >& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL setArray( sal_Int32 parameterIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XArray >& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL clearParameters( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
|
|
// XWarningsSupplier
|
|
virtual ::com::sun::star::uno::Any SAL_CALL getWarnings( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL clearWarnings( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
|
|
protected:
|
|
/** implement the <method>execute</method>, without calling the approve listeners and without building a new
|
|
connection
|
|
@param _rClearForNotification mutex to clear before doing the final notifications
|
|
*/
|
|
void execute_NoApprove_NoNewConn(::osl::ResettableMutexGuard& _rClearForNotification);
|
|
|
|
/** call the RowSetApproveListeners<p/>
|
|
throws an RowSetVetoException if one of the listeners vetoed
|
|
*/
|
|
void approveExecution() throw (::com::sun::star::sdb::RowSetVetoException, ::com::sun::star::uno::RuntimeException);
|
|
|
|
/// set m_xActiveConnection, fire a PropertyChangeEvent if necessary, do the event listener handling etc
|
|
void setActiveConnection( ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxNewConn, sal_Bool _bFireEvent = sal_True );
|
|
|
|
void implCancelRowUpdates( sal_Bool _bNotifyModified ) SAL_THROW( ( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) );
|
|
|
|
/** sets the given result set type/concurrency at the given statement, while respecting
|
|
possibly related data source settings
|
|
*/
|
|
void setStatementResultSetType(
|
|
const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxStatement,
|
|
sal_Int32 _nDesiredResultSetType,
|
|
sal_Int32 _nDesiredResultSetConcurrency
|
|
);
|
|
|
|
/** initializes a given RowSet column with the ColumnSettings (width, format, hidden, etc.) from a
|
|
template column.
|
|
|
|
If the template column supports any of the known column settings, they're plain copied. If not,
|
|
the template column is examined for a TableName and Name property, and the table column described
|
|
by those is used to find and copy the column settings.
|
|
*/
|
|
void impl_initializeColumnSettings_nothrow(
|
|
const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxTemplateColumn,
|
|
const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxRowSetColumn
|
|
);
|
|
|
|
/** initializes our parameters container (m_pParameters) according to the parameter columns as
|
|
obtained from our composer
|
|
*/
|
|
void impl_initParametersContainer_nothrow();
|
|
/** disposes our parameters container
|
|
*/
|
|
void impl_disposeParametersContainer_nothrow();
|
|
|
|
protected:
|
|
using ORowSetBase::getFastPropertyValue;
|
|
using ORowSetBase::firePropertyChange;
|
|
using ORowSetBase::doCancelModification;
|
|
using ORowSetBase::isModification;
|
|
using ORowSetBase::isModified;
|
|
using ORowSetBase::isNew;
|
|
};
|
|
|
|
|
|
//************************************************************
|
|
// ORowSetClone
|
|
//************************************************************
|
|
class ORowSetClone : public comphelper::OBaseMutex
|
|
,public OSubComponent
|
|
,public ORowSetBase
|
|
,public ::comphelper::OPropertyArrayUsageHelper < ORowSetClone >
|
|
{
|
|
protected:
|
|
ORowSet* m_pParent;
|
|
sal_Int32 m_nFetchDirection;
|
|
sal_Int32 m_nFetchSize;
|
|
sal_Bool m_bIsBookmarable;
|
|
|
|
protected:
|
|
// the clone can not insert anything
|
|
virtual void doCancelModification( );
|
|
virtual sal_Bool isModification( );
|
|
virtual sal_Bool isModified( );
|
|
virtual sal_Bool isNew( );
|
|
|
|
virtual void SAL_CALL setFastPropertyValue_NoBroadcast(sal_Int32 nHandle,const ::com::sun::star::uno::Any& rValue) throw (::com::sun::star::uno::Exception);
|
|
public:
|
|
ORowSetClone( const ::comphelper::ComponentContext& _rContext, ORowSet& rParent, ::osl::Mutex* _pMutex );
|
|
virtual ~ORowSetClone();
|
|
|
|
// com::sun::star::lang::XTypeProvider
|
|
virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException)
|
|
{
|
|
return getUnoTunnelImplementationId();
|
|
}
|
|
|
|
// com::sun::star::uno::XInterface
|
|
virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw (::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL acquire() throw();
|
|
virtual void SAL_CALL release() throw();
|
|
|
|
// ::com::sun::star::lang::XServiceInfo
|
|
virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw(::com::sun::star::uno::RuntimeException);
|
|
virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
|
|
virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// com::sun::star::lang::XUnoTunnel
|
|
virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException);
|
|
static ::com::sun::star::uno::Sequence< sal_Int8 > getUnoTunnelImplementationId();
|
|
|
|
// OComponentHelper
|
|
virtual void SAL_CALL disposing(void);
|
|
|
|
// ::com::sun::star::sdbc::XCloseable
|
|
virtual void SAL_CALL close( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
|
|
// com::sun::star::beans::XPropertySet
|
|
virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException)
|
|
{
|
|
return ::cppu::OPropertySetHelper::createPropertySetInfo(getInfoHelper());
|
|
}
|
|
|
|
// ::com::sun::star::sdbc::XRowSet
|
|
virtual void SAL_CALL execute( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL addRowSetListener( const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSetListener >& listener ) throw(::com::sun::star::uno::RuntimeException);
|
|
virtual void SAL_CALL removeRowSetListener( const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSetListener >& listener ) throw(::com::sun::star::uno::RuntimeException);
|
|
|
|
// comphelper::OPropertyArrayUsageHelper
|
|
virtual ::cppu::IPropertyArrayHelper* createArrayHelper( ) const;
|
|
|
|
// cppu::OPropertySetHelper
|
|
virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper();
|
|
|
|
protected:
|
|
using ORowSetBase::doCancelModification;
|
|
using ORowSetBase::isModification;
|
|
using ORowSetBase::isModified;
|
|
using ORowSetBase::isNew;
|
|
using ORowSetBase::rowDeleted;
|
|
};
|
|
|
|
}
|
|
#endif // DBACCESS_CORE_API_ROWSET_HXX
|
|
|