Files
libreoffice/svx/source/inc/dbtoolsclient.hxx
Jens-Heiner Rechtien a766609d71 INTEGRATION: CWS warnings01 (1.11.196); FILE MERGED
2006/05/23 18:35:16 sb 1.11.196.2: RESYNC: (1.11-1.12); FILE MERGED
2006/01/05 12:02:27 fs 1.11.196.1: #i55991# warning-free code
2006-06-19 15:04:25 +00:00

243 lines
11 KiB
C++

/*************************************************************************
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: dbtoolsclient.hxx,v $
*
* $Revision: 1.13 $
*
* last change: $Author: hr $ $Date: 2006-06-19 16:04:25 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
*
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2005 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library 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 for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
************************************************************************/
#ifndef SVX_DBTOOLSCLIENT_HXX
#define SVX_DBTOOLSCLIENT_HXX
#ifndef CONNECTIVITY_VIRTUAL_DBTOOLS_HXX
#include <connectivity/virtualdbtools.hxx>
#endif
#ifndef _OSL_MUTEX_HXX_
#include <osl/mutex.hxx>
#endif
#ifndef _OSL_MODULE_H_
#include <osl/module.h>
#endif
#ifndef _SOLAR_H
#include <tools/solar.h>
#endif
#ifndef UNOTOOLS_INC_SHAREDUNOCOMPONENT_HXX
#include <unotools/sharedunocomponent.hxx>
#endif
//........................................................................
namespace svxform
{
//........................................................................
typedef ::utl::SharedUNOComponent< ::com::sun::star::sdbc::XConnection > SharedConnection;
//====================================================================
//= ODbtoolsClient
//====================================================================
/** base class for classes which want to use dbtools features with load-on-call
of the dbtools lib.
*/
class ODbtoolsClient
{
private:
static ::osl::Mutex s_aMutex;
static sal_Int32 s_nClients;
static oslModule s_hDbtoolsModule;
static ::connectivity::simple::createDataAccessToolsFactoryFunction
s_pFactoryCreationFunc;
//add by BerryJia for fixing Bug97420 Time:2002-9-12-11:00(PRC time)
mutable BOOL m_bCreateAlready;
private:
mutable ::rtl::Reference< ::connectivity::simple::IDataAccessToolsFactory > m_xDataAccessFactory;
protected:
const ::rtl::Reference< ::connectivity::simple::IDataAccessToolsFactory >&
getFactory() const { return m_xDataAccessFactory; }
protected:
ODbtoolsClient();
~ODbtoolsClient();
//add by BerryJia for fixing Bug97420 Time:2002-9-12-11:00(PRC time)
void create() const;
private:
static void registerClient();
static void revokeClient();
};
//====================================================================
//= OStaticDataAccessTools
//====================================================================
class OStaticDataAccessTools : public ODbtoolsClient
{
protected:
mutable ::rtl::Reference< ::connectivity::simple::IDataAccessTools > m_xDataAccessTools;
//add by BerryJia for fixing Bug97420 Time:2002-9-12-11:00(PRC time)
void create() const;
void checkIfLoaded() const;
public:
OStaticDataAccessTools();
const ::rtl::Reference< ::connectivity::simple::IDataAccessTools >& getDataAccessTools() const { return m_xDataAccessTools; }
// ------------------------------------------------
::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatsSupplier> getNumberFormats(
const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _rxConn,
sal_Bool _bAllowDefault
) const;
// ------------------------------------------------
sal_Int32 getDefaultNumberFormat(
const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _xColumn,
const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatTypes >& _xTypes,
const ::com::sun::star::lang::Locale& _rLocale );
// ------------------------------------------------
::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection> getConnection_withFeedback(
const ::rtl::OUString& _rDataSourceName,
const ::rtl::OUString& _rUser,
const ::rtl::OUString& _rPwd,
const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory
) const SAL_THROW ( (::com::sun::star::sdbc::SQLException) );
// ------------------------------------------------
::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection> connectRowset(
const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet>& _rxRowSet,
const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory,
sal_Bool _bSetAsActiveConnection
) const SAL_THROW ( ( ::com::sun::star::sdbc::SQLException
, ::com::sun::star::lang::WrappedTargetException
, ::com::sun::star::uno::RuntimeException) );
// ------------------------------------------------
::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection> getRowSetConnection(
const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet>& _rxRowSet)
const SAL_THROW ( (::com::sun::star::uno::RuntimeException) );
// ------------------------------------------------
void TransferFormComponentProperties(
const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxOld,
const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxNew,
const ::com::sun::star::lang::Locale& _rLocale
) const;
// ------------------------------------------------
::rtl::OUString quoteName(
const ::rtl::OUString& _rQuote,
const ::rtl::OUString& _rName
) const;
// ------------------------------------------------
::rtl::OUString quoteTableName(
const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData>& _rxMeta,
const ::rtl::OUString& _rName
,sal_Bool _bUseCatalogInSelect = sal_True
,sal_Bool _bUseSchemaInSelect = sal_True
) const;
// ------------------------------------------------
::com::sun::star::sdb::SQLContext prependContextInfo(
::com::sun::star::sdbc::SQLException& _rException,
const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxContext,
const ::rtl::OUString& _rContextDescription,
const ::rtl::OUString& _rContextDetails
) const;
// ------------------------------------------------
::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDataSource > getDataSource(
const ::rtl::OUString& _rsRegisteredName,
const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory
) const;
// ------------------------------------------------
/** check if the property "Privileges" supports ::com::sun::star::sdbcx::Privilege::INSERT
@param _rxCursorSet the property set
*/
sal_Bool canInsert(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxCursorSet) const;
// ------------------------------------------------
/** check if the property "Privileges" supports ::com::sun::star::sdbcx::Privilege::UPDATE
@param _rxCursorSet the property set
*/
sal_Bool canUpdate(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxCursorSet) const;
// ------------------------------------------------
/** check if the property "Privileges" supports ::com::sun::star::sdbcx::Privilege::DELETE
@param _rxCursorSet the property set
*/
sal_Bool canDelete(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxCursorSet) const;
// ------------------------------------------------
::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >
getFieldsByCommandDescriptor(
const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection,
const sal_Int32 _nCommandType,
const ::rtl::OUString& _rCommand,
::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& _rxKeepFieldsAlive,
::dbtools::SQLExceptionInfo* _pErrorInfo = NULL
) SAL_THROW( ( ) );
// ------------------------------------------------
::com::sun::star::uno::Sequence< ::rtl::OUString >
getFieldNamesByCommandDescriptor(
const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection,
const sal_Int32 _nCommandType,
const ::rtl::OUString& _rCommand,
::dbtools::SQLExceptionInfo* _pErrorInfo = NULL
) SAL_THROW( ( ) );
// ------------------------------------------------
sal_Bool isDataSourcePropertyEnabled(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& _xProp
,const ::rtl::OUString& _sProperty,
sal_Bool _bDefault = sal_False) const;
// ------------------------------------------------
bool isEmbeddedInDatabase(
const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxComponent,
::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxActualConnection
);
// ------------------------------------------------
bool isEmbeddedInDatabase(
const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxComponent
);
};
//........................................................................
} // namespace svxform
//........................................................................
#endif // SVX_DBTOOLSCLIENT_HXX