summaryrefslogtreecommitdiff
path: root/connectivity/inc/connectivity/dbtools.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'connectivity/inc/connectivity/dbtools.hxx')
-rw-r--r--connectivity/inc/connectivity/dbtools.hxx827
1 files changed, 0 insertions, 827 deletions
diff --git a/connectivity/inc/connectivity/dbtools.hxx b/connectivity/inc/connectivity/dbtools.hxx
deleted file mode 100644
index a22e489724..0000000000
--- a/connectivity/inc/connectivity/dbtools.hxx
+++ /dev/null
@@ -1,827 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * 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 _CONNECTIVITY_DBTOOLS_HXX_
-#define _CONNECTIVITY_DBTOOLS_HXX_
-
-#include <connectivity/dbexception.hxx>
-#include <comphelper/types.hxx>
-#include <com/sun/star/sdbc/DataType.hpp>
-#include <comphelper/stl_types.hxx>
-#include <unotools/sharedunocomponent.hxx>
-#include "connectivity/dbtoolsdllapi.hxx"
-#include "connectivity/FValue.hxx"
-
-namespace com { namespace sun { namespace star {
-
-namespace sdb {
- class XSingleSelectQueryComposer;
- class SQLContext;
-}
-namespace sdbcx {
- class XTablesSupplier;
-}
-namespace sdbc {
- class XConnection;
- class XDatabaseMetaData;
- class XRowSet;
- class XDataSource;
- class SQLException;
- class XParameters;
- class XRowUpdate;
-}
-namespace beans {
- class XPropertySet;
-}
-namespace awt {
- class XWindow;
-}
-namespace lang {
- struct Locale;
- class XMultiServiceFactory;
- class WrappedTargetException;
-}
-namespace container {
- class XNameAccess;
-}
-
-namespace util {
- class XNumberFormatTypes;
- class XNumberFormatsSupplier;
-}
-namespace task {
- class XInteractionHandler;
-}
-
-} } }
-
-namespace rtl
-{
- class OUStringBuffer;
-}
-
-//.........................................................................
-namespace dbtools
-{
- class ISQLStatementHelper;
- typedef ::utl::SharedUNOComponent< ::com::sun::star::sdbc::XConnection > SharedConnection;
-
- enum EComposeRule
- {
- eInTableDefinitions,
- eInIndexDefinitions,
- eInDataManipulation,
- eInProcedureCalls,
- eInPrivilegeDefinitions,
- eComplete
- };
-//=========================================================================
- // date conversion
-
- // calculates the default numberformat for a given datatype and a give language
- OOO_DLLPUBLIC_DBTOOLS
- 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);
-
- // calculates the default numberformat for a given datatype and a give language
- // @param _nDataType @see com.sun.star.sdbc.DataType
- // @param _nScale can be zero
- OOO_DLLPUBLIC_DBTOOLS
- sal_Int32 getDefaultNumberFormat(sal_Int32 _nDataType,
- sal_Int32 _nScale,
- sal_Bool _bIsCurrency,
- const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatTypes >& _xTypes,
- const ::com::sun::star::lang::Locale& _rLocale);
-
-//=========================================================================
-
- /** creates a connection which can be used for the rowset given
-
- The function tries to obtain a connection for the row set with the following
- steps (in this order):
- <nl>
- <li>If the rowset already has an ActiveConnection (means a non-<NULL/> value vor this property),
- this one is used.</li>
- <li>If row set is part of a database form document (see ->isEmbeddedInDatabase),
- a connection for the respective database is used.</li>
- <li>If in the parent hierarchy of the row set, there is an object supporting
- the XConnection interface, this one is returned.</li>
- <li>If the DataSourceName property of the row set is not empty, a connection for this
- data source is retrieved.</li>
- <li>If the URL property of the row set is not empty, an connection for this URL is
- retrieved from the driver manager.
- </nl>
-
- @param _rxRowSet
- the row set
-
- @param _rxFactory
- a service factory, which can be used to create data sources, interaction handler etc (the usual stuff)
-
- @param _bSetAsActiveConnection
- If <TRUE/>, the calculated connection is set as ActiveConnection property on the rowset.
-
- If the connection was newly created by the method, and this parameter is <TRUE/>, then
- the ownership of the connection is delivered to a temporary object, which observes the
- row set: As soon as a connection-relevant property of the row set changes, or as soon
- as somebody else sets another ActiveConnection at the row set, the original
- connection (the one which this function calculated) is disposed and discarded. At this
- very moment, also the temporary observer object dies. This way, it is ensured that
- there's no resource leak from an un-owned connection object.
- */
- OOO_DLLPUBLIC_DBTOOLS
- ::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
- ) SAL_THROW ( ( ::com::sun::star::sdbc::SQLException
- , ::com::sun::star::lang::WrappedTargetException
- , ::com::sun::star::uno::RuntimeException ) );
-
- /** ensures that a row set has a valid ActiveConnection, if possible
-
- This function does nearly the same as ->connectRowset. In fact, it is to be preferred over
- ->connectRowset, if possible.
-
- There are a few differences:
- <ul><li>If a connection could be determined for the given RowSet, it is always
- set as ActiveConnection.</li>
- <li>Definition of the ownership of the created connection allows for more scenarios:
- <ul><li>If the connection was not newly created, the returned ->SharedConnection
- instance will not have the ownership, since in this case it's assumed
- that there already is an instance which has the ownership.</li>
- <li>If the connection was newly created, and ->_bUseAutoConnectionDisposer
- is <TRUE/>, then the returned SharedConnection instance will <em>not</em>
- be the owner of the connection. Instead, the ownership will be delivered
- to a temporary object as described for connectRowset.</li>
- <li>If the connection was newly created, and ->_bUseAutoConnectionDisposer
- is <FALSE/>, then the returned SharedConnection instance will have the
- ownership of the XConnection.</li>
- </ul>
- </li>
- </ul>
- */
- OOO_DLLPUBLIC_DBTOOLS SharedConnection ensureRowSetConnection(
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet>& _rxRowSet,
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory,
- bool _bUseAutoConnectionDisposer
- ) SAL_THROW ( ( ::com::sun::star::sdbc::SQLException
- , ::com::sun::star::lang::WrappedTargetException
- , ::com::sun::star::uno::RuntimeException ) );
-
- /** returns the connection the RowSet is currently working with (which is the ActiveConnection property)
- */
- OOO_DLLPUBLIC_DBTOOLS ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection> getConnection(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet>& _rxRowSet) throw (::com::sun::star::uno::RuntimeException);
- OOO_DLLPUBLIC_DBTOOLS ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection> getConnection(
- const ::rtl::OUString& _rsTitleOrPath,
- const ::rtl::OUString& _rsUser,
- const ::rtl::OUString& _rsPwd,
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory);
-
- OOO_DLLPUBLIC_DBTOOLS ::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)
- SAL_THROW ( (::com::sun::star::sdbc::SQLException) );
-
-
- /** determines whether the given component is part of a document which is an embedded database
- document (such as a form)
- */
- OOO_DLLPUBLIC_DBTOOLS 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
- );
-
- /** returns the columns of the named table of the given connection
- */
- OOO_DLLPUBLIC_DBTOOLS ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess> getTableFields(
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _rxConn,
- const ::rtl::OUString& _rName
- );
-
- /** returns the primary key columns of the table
- */
- OOO_DLLPUBLIC_DBTOOLS ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess> getPrimaryKeyColumns_throw(
- const ::com::sun::star::uno::Any& i_aTable
- );
- OOO_DLLPUBLIC_DBTOOLS ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess> getPrimaryKeyColumns_throw(
- const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& i_xTable
- );
-
- /** get fields for a result set given by a "command descriptor"
-
- <p>A command descriptor here means:
- <ul><li>a SDB-level connection (<type scope="com.sun.star.sdb">Connection</type></li>
- <li>a string specifying the name of an object relative to the connection</li>
- <li>a <type scope="com.sun.star.sdb">CommandType</type> value specifying the type
- of the object</type></li>
- </ul>
- </p>
-
- @param _rxConnection
- the connection relative to which the to-be-examined object exists
-
- @param _nCommandType
- the type of the object
-
- @param _rCommand
- the object. This may be a table name, a query name, or an SQL statement, depending on the value
- of <arg>_nCommandType</arg>
-
- @param _rxCollectionOner
- If (and only if) <arg>CommandType</arg> is CommandType.COMMAND, the fields collection which is returned
- by this function here is a temporary object. It is kept alive by another object, which is to be
- created temporarily, too. To ensure that the fields you get are valid as long as you need them,
- the owner which controls their life time is transfered to this parameter upon return.<br/>
-
- Your fields live as long as this component lives.<br/>
-
- Additionally, you are encouraged to dispose this component as soon as you don't need the fields anymore.
- It depends on the connection's implementation if this is necessary, but the is no guarantee, so to
- be on the safe side with respect to resource leaks, you should dispose the component.
-
- @param _pErrorInfo
- If not <NULL/>, then upon return from the function the instance pointed to by this argument will
- contain any available error information in case something went wrong.
-
- @return
- the container of the columns (aka fields) of the object
- */
- OOO_DLLPUBLIC_DBTOOLS
- ::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,
- SQLExceptionInfo* _pErrorInfo = NULL
- ) SAL_THROW( ( ) );
-
-
- /** get fields for a result set given by a "command descriptor"
-
- <p>A command descriptor here means:
- <ul><li>a SDB-level connection (<type scope="com.sun.star.sdb">Connection</type></li>
- <li>a string specifying the name of an object relative to the connection</li>
- <li>a <type scope="com.sun.star.sdb">CommandType</type> value specifying the type
- of the object</type></li>
- </ul>
- </p>
-
- @param _rxConnection
- the connection relative to which the to-be-examined object exists
-
- @param _nCommandType
- the type of the object
-
- @param _rCommand
- the object. This may be a table name, a query name, or an SQL statement, depending on the value
- of <arg>_nCommandType</arg>
-
- @param _pErrorInfo
- If not <NULL/>, then upon return from the function the instance pointed to by this argument will
- contain any available error information in case something went wrong.
-
- @return
- an array of strings containing the names of the columns (aka fields) of the object
- */
- OOO_DLLPUBLIC_DBTOOLS ::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,
- SQLExceptionInfo* _pErrorInfo = NULL
- ) SAL_THROW( ( ) );
-
-
- /** create a new ::com::sun::star::sdbc::SQLContext, fill it with the given descriptions and the given source,
- and <i>append</i> _rException (i.e. put it into the NextException member of the SQLContext).
- */
- OOO_DLLPUBLIC_DBTOOLS ::com::sun::star::sdb::SQLContext prependContextInfo(const ::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 );
-
- OOO_DLLPUBLIC_DBTOOLS
- ::com::sun::star::sdbc::SQLException prependErrorInfo(
- const ::com::sun::star::sdbc::SQLException& _rChainedException,
- const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxContext,
- const ::rtl::OUString& _rAdditionalError,
- const StandardSQLState _eSQLState = SQL_ERROR_UNSPECIFIED,
- const sal_Int32 _nErrorCode = 0);
-
- /** search the parent hierachy for a data source.
- */
- OOO_DLLPUBLIC_DBTOOLS ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDataSource> findDataSource(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _xParent);
-
- /** determines the value of a booolean data source setting, given by ASCII name
-
- @param _rxConnection
- the connection belonging to the data source whose setting is to be retrieved
- @param _pAsciiSettingName
- the ASCII name of the setting
- */
- OOO_DLLPUBLIC_DBTOOLS bool getBooleanDataSourceSetting(
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection,
- const sal_Char* _pAsciiSettingName
- );
-
- /** check if a specific property is enabled in the info sequence
- @deprecated
- Use getBooleanDataSourceSetting instead, which cares for the default of the property itself,
- instead of spreading this knowledge through all callers.
- */
- OOO_DLLPUBLIC_DBTOOLS
- sal_Bool isDataSourcePropertyEnabled(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& _xProp
- ,const ::rtl::OUString& _sProperty,
- sal_Bool _bDefault = sal_False);
-
- /** retrieves a particular indirect data source setting
-
- @param _rxDataSource
- a data source component
- @param _pAsciiSettingsName
- the ASCII name of the setting to obtain
- @param _rSettingsValue
- the value of the setting, upon successfull return
-
- @return
- <FALSE/> if the setting is not present in the <member scope="com::sun::star::sdb">DataSource::Info</member>
- member of the data source
- <TRUE/> otherwise
- */
- OOO_DLLPUBLIC_DBTOOLS
- bool getDataSourceSetting(
- const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxDataSource,
- const sal_Char* _pAsciiSettingsName,
- ::com::sun::star::uno::Any& /* [out] */ _rSettingsValue
- );
- OOO_DLLPUBLIC_DBTOOLS
- bool getDataSourceSetting(
- const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxDataSource,
- const ::rtl::OUString& _sSettingsName,
- ::com::sun::star::uno::Any& /* [out] */ _rSettingsValue
- );
-
- OOO_DLLPUBLIC_DBTOOLS ::rtl::OUString getDefaultReportEngineServiceName(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory);
-
- /** quote the given name with the given quote string.
- */
- OOO_DLLPUBLIC_DBTOOLS ::rtl::OUString quoteName(const ::rtl::OUString& _rQuote, const ::rtl::OUString& _rName);
-
- /** quote the given table name (which may contain a catalog and a schema) according to the rules provided by the meta data
- */
- OOO_DLLPUBLIC_DBTOOLS
- ::rtl::OUString quoteTableName(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData>& _rxMeta
- , const ::rtl::OUString& _rName
- ,EComposeRule _eComposeRule);
-
- /** split a fully qualified table name (including catalog and schema, if appliable) into it's component parts.
- @param _rxConnMetaData meta data describing the connection where you got the table name from
- @param _rQualifiedName fully qualified table name
- @param _rCatalog (out parameter) upon return, contains the catalog name
- @param _rSchema (out parameter) upon return, contains the schema name
- @param _rName (out parameter) upon return, contains the table name
- @param _eComposeRule where do you need the name for
- */
- OOO_DLLPUBLIC_DBTOOLS void qualifiedNameComponents(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >& _rxConnMetaData,
- const ::rtl::OUString& _rQualifiedName, ::rtl::OUString& _rCatalog, ::rtl::OUString& _rSchema, ::rtl::OUString& _rName,EComposeRule _eComposeRule);
-
- /** calculate a NumberFormatsSupplier for use with an given connection
- @param _rxConn the connection for which the formatter is requested
- @param _bAllowDefault if the connection (and related components, such as it's parent) cannot supply
- a formatter, we can ask the DatabaseEnvironment for a default one. This parameter
- states if this is allowed.
- @param _rxFactory required (only of _bAllowDefault is sal_True) for creating the DatabaseEnvironment.
- @return the formatter all object related to the given connection should work with.
- */
- OOO_DLLPUBLIC_DBTOOLS ::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 = sal_False,
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory = ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>()
- );
-
- /** returns the statement which is composed from the current settings of a row set
-
- If the row set is currently not connected, it is attempted to do so with it's current settings.
- (TODO: isn't this a resource leak? Do we really need this behaviour?).
-
- @param _rxRowSet
- the row set whose settings should be examined. Must not be <NULL/>
- @param _rxFactory
- a service factory which may be needed to connect the row set
- @param _bUseRowSetFilter
- If <TRUE/>, the <b>Filter</b> property of the row set will also be examined. In case it is
- not empty, and <b>ApplyFilter</b> is <TRUE/>, it will also be added to the composed statement.
- @param _bUseRowSetOrder
- If <TRUE/>, the <b>Order</b> property of the row set will also be examined. In case it is
- not empty, it will also be added to the composed statement.
- */
- OOO_DLLPUBLIC_DBTOOLS ::rtl::OUString getComposedRowSetStatement(
- const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxRowSet,
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory,
- sal_Bool _bUseRowSetFilter = sal_True,
- sal_Bool _bUseRowSetOrder = sal_True
- ) SAL_THROW( ( ::com::sun::star::sdbc::SQLException ) );
-
- /** create an <type scope="com::sun::star::sdb">XSingleSelectQueryComposer</type> which represents
- the current settings (Command/CommandType/Filter/Order) of the given rowset.
-
- As such an instance can be obtained from a <type scope="com::sun::star::sdb">Connection</type>
- only the function searches for the connection the RowSet is using via connectRowset.
- This implies that a connection will be set on the RowSet if needed.
- (need to changes this sometimes ...)
- */
- OOO_DLLPUBLIC_DBTOOLS ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSingleSelectQueryComposer > getCurrentSettingsComposer(
- const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxRowSetProps,
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory
- );
-
- /** transfer and translate properties between two FormComponents
- @param _rxOld the source property set
- @param _rxNew the destination property set
- @param _rLocale the locale for converting number related properties
- */
- OOO_DLLPUBLIC_DBTOOLS 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
- );
-
- /** check if the property "Privileges" supports ::com::sun::star::sdbcx::Privilege::INSERT
- @param _rxCursorSet the property set
- */
- OOO_DLLPUBLIC_DBTOOLS sal_Bool canInsert(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxCursorSet);
- /** check if the property "Privileges" supports ::com::sun::star::sdbcx::Privilege::UPDATE
- @param _rxCursorSet the property set
- */
- OOO_DLLPUBLIC_DBTOOLS sal_Bool canUpdate(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxCursorSet);
- /** check if the property "Privileges" supports ::com::sun::star::sdbcx::Privilege::DELETE
- @param _rxCursorSet the property set
- */
- OOO_DLLPUBLIC_DBTOOLS sal_Bool canDelete(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxCursorSet);
-
- //----------------------------------------------------------------------------------
- /** compose a complete table name from it's up to three parts, regarding to the database meta data composing rules
- */
- OOO_DLLPUBLIC_DBTOOLS ::rtl::OUString composeTableName( const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >& _rxMetaData,
- const ::rtl::OUString& _rCatalog,
- const ::rtl::OUString& _rSchema,
- const ::rtl::OUString& _rName,
- sal_Bool _bQuote,
- EComposeRule _eComposeRule);
-
- /** composes a table name for usage in a SELECT statement
-
- This includes quoting of the table as indicated by the connection's meta data, plus respecting
- the settings "UseCatalogInSelect" and "UseSchemaInSelect", which might be present
- in the data source which the connection belongs to.
- */
- OOO_DLLPUBLIC_DBTOOLS ::rtl::OUString composeTableNameForSelect(
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection,
- const ::rtl::OUString& _rCatalog,
- const ::rtl::OUString& _rSchema,
- const ::rtl::OUString& _rName );
-
- /** composes a table name for usage in a SELECT statement
-
- This includes quoting of the table as indicated by the connection's meta data, plus respecting
- the settings "UseCatalogInSelect" and "UseSchemaInSelect", which might be present
- in the data source which the connection belongs to.
- */
- OOO_DLLPUBLIC_DBTOOLS ::rtl::OUString composeTableNameForSelect(
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection,
- const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _xTable );
- //----------------------------------------------------------------------------------
- /** compose the table name out of the property set which must support the properties from the service <member scope= "com::sun::star::sdbcx">table</member>
- @param _xMetaData
- The metadata from the connection.
- @param _xTable
- The table.
- */
- OOO_DLLPUBLIC_DBTOOLS ::rtl::OUString composeTableName(
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData>& _xMetaData,
- const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _xTable,
- EComposeRule _eComposeRule,
- bool _bSuppressCatalogName,
- bool _bSuppressSchemaName,
- bool _bQuote);
-
- //----------------------------------------------------------------------------------
- OOO_DLLPUBLIC_DBTOOLS sal_Int32 getSearchColumnFlag( const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _rxConn,
- sal_Int32 _nDataType);
- // return the datasource for the given datasource name
- OOO_DLLPUBLIC_DBTOOLS ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDataSource> getDataSource(const ::rtl::OUString& _rsDataSourceName,
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory);
-
- /** search for a name that is NOT in the NameAcces
- @param _rxContainer
- the NameAccess container to search in
- @param _rBaseName
- the base name that should be used to create the new name
- @param _bStartWithNumber
- When <TRUE/> the name ends with number even when the name itself doesn't occur in the collection.
- @return
- A name which doesn't exist in the collection.
- */
- OOO_DLLPUBLIC_DBTOOLS
- ::rtl::OUString createUniqueName(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess>& _rxContainer,
- const ::rtl::OUString& _rBaseName,
- sal_Bool _bStartWithNumber = sal_True);
-
- /** creates a unique name which is not already used in the given name array
- */
- OOO_DLLPUBLIC_DBTOOLS ::rtl::OUString createUniqueName(
- const ::com::sun::star::uno::Sequence< ::rtl::OUString >& _rNames,
- const ::rtl::OUString& _rBaseName,
- sal_Bool _bStartWithNumber = sal_True
- );
-
- /** create a name which is a valid SQL 92 identifier name
- @param _rName the string which should be converted
- @param _rSpecials @see com.sun.star.sdbc.XDatabaseMetaData.getExtraNameCharacters
-
- @see isValidSQLName
- */
- OOO_DLLPUBLIC_DBTOOLS ::rtl::OUString convertName2SQLName(const ::rtl::OUString& _rName,const ::rtl::OUString& _rSpecials);
-
- /** checks whether the given name is a valid SQL name
-
- @param _rName the string which should be converted
- @param _rSpecials @see com.sun.star.sdbc.XDatabaseMetaData.getExtraNameCharacters
-
- @see convertName2SQLName
- */
- OOO_DLLPUBLIC_DBTOOLS sal_Bool isValidSQLName( const ::rtl::OUString& _rName, const ::rtl::OUString& _rSpecials );
-
- OOO_DLLPUBLIC_DBTOOLS
- void showError( const SQLExceptionInfo& _rInfo,
- const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow>& _pParent,
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory);
-
- /** implements <method scope="com.sun.star.sdb">XRowUpdate::updateObject</method>
- <p>The object which is to be set is analyzed, and in case it is a simlpe scalar type for which there
- is another updateXXX method, this other method is used.</p>
- @param _rxUpdatedObject
- the interface to forward all updateXXX calls to (except updateObject)
- @param _nColumnIndex
- the column index to update
- @param _rValue
- the value to update
- @return
- <TRUE/> if the update request was successfully re-routed to one of the other updateXXX methods
- */
- OOO_DLLPUBLIC_DBTOOLS
- sal_Bool implUpdateObject( const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowUpdate >& _rxUpdatedObject,
- const sal_Int32 _nColumnIndex,
- const ::com::sun::star::uno::Any& _rValue) SAL_THROW ( ( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) );
-
-
-
- /** ask the user for parameters if the prepared statement needs some and sets them in the prepared statement
- @param _xConnection the connection must be able to create <type scope="com::sun::star::sdb">SingleSelectQueryComposer</type>s
- @param _xPreparedStmt the prepared statement where the parameters could be set when needed
- @param _aParametersSet contains which parameters have to asked for and which already have set.
- */
- OOO_DLLPUBLIC_DBTOOLS
- void askForParameters( const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSingleSelectQueryComposer >& _xComposer,
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XParameters>& _xParameters,
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _xConnection,
- const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& _rxHandler,
- const ::std::vector<bool, std::allocator<bool> >& _aParametersSet = ::std::vector<bool, std::allocator<bool> >());
-
- /** call the appropiate set method for the specific sql type @see com::sun::star::sdbc::DataType
- @param _xParams the parameters where to set the value
- @param parameterIndex the index of the parameter, 1 based
- @param x the value to set
- @param sqlType the corresponding sql type @see com::sun::star::sdbc::DataType
- @param scale the scale of the sql type can be 0
- */
- OOO_DLLPUBLIC_DBTOOLS
- void setObjectWithInfo( const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XParameters>& _xParameters,
- sal_Int32 parameterIndex,
- const ::com::sun::star::uno::Any& x,
- sal_Int32 sqlType,
- sal_Int32 scale=0) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-
- /** call the appropiate set method for the specific sql type @see com::sun::star::sdbc::DataType
- @param _xParams the parameters where to set the value
- @param parameterIndex the index of the parameter, 1 based
- @param x the value to set
- @param sqlType the corresponding sql type @see com::sun::star::sdbc::DataType
- @param scale the scale of the sql type can be 0
- */
- OOO_DLLPUBLIC_DBTOOLS
- void setObjectWithInfo( const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XParameters>& _xParameters,
- sal_Int32 parameterIndex,
- const ::connectivity::ORowSetValue& x,
- sal_Int32 sqlType,
- sal_Int32 scale=0) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-
-
- /** implements <method scope="com.sun.star.sdb">XParameters::setObject</method>
- <p>The object which is to be set is analyzed, and in case it is a simlpe scalar type for which there
- is another setXXX method, this other method is used.</p>
- @param _rxParameters
- the interface to forward all setXXX calls to (except setObject)
- @param _nColumnIndex
- the column index to update
- @param _rValue
- the value to update
- @return
- <TRUE/> if the update request was successfully re-routed to one of the other updateXXX methods
- */
- OOO_DLLPUBLIC_DBTOOLS
- sal_Bool implSetObject( const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XParameters>& _rxParameters,
- const sal_Int32 _nColumnIndex,
- const ::com::sun::star::uno::Any& _rValue) SAL_THROW ( ( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) );
-
- /** creates the standard sql create table statement without the key part.
- @param descriptor
- The descriptor of the new table.
- @param _xConnection
- The connection.
- @param _bAddScale
- The scale will also be added when the value is 0.
- */
- OOO_DLLPUBLIC_DBTOOLS
- ::rtl::OUString createStandardCreateStatement( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor,
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _xConnection,
- ISQLStatementHelper* _pHelper,
- const ::rtl::OUString& _sCreatePattern = ::rtl::OUString());
-
- /** creates the standard sql statement for the key part of a create table statement.
- @param descriptor
- The descriptor of the new table.
- @param _xConnection
- The connection.
- */
- OOO_DLLPUBLIC_DBTOOLS
- ::rtl::OUString createStandardKeyStatement( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor,
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _xConnection);
-
- /** creates the standard sql statement for the column part of a create table statement.
- @param _pHelper
- Allow to add special SQL constructs.
- @param descriptor
- The descriptor of the column.
- @param _xConnection
- The connection.
- @param _pHelper
- Allow to add special SQL constructs.
- */
- OOO_DLLPUBLIC_DBTOOLS
- ::rtl::OUString createStandardColumnPart( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor
- ,const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _xConnection
- ,ISQLStatementHelper* _pHelper = NULL
- ,const ::rtl::OUString& _sCreatePattern = ::rtl::OUString());
-
- /** creates a SQL CREATE TABLE statement
-
- @param descriptor
- The descriptor of the new table.
- @param _xConnection
- The connection.
- @param _pHelper
- Allow to add special SQL constructs.
- @param _sCreatePattern
-
- @return
- The CREATE TABLE statement.
- */
- OOO_DLLPUBLIC_DBTOOLS
- ::rtl::OUString createSqlCreateTableStatement( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor
- ,const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _xConnection
- ,ISQLStatementHelper* _pHelper = NULL
- ,const ::rtl::OUString& _sCreatePattern = ::rtl::OUString());
-
- /** creates a SDBC column with the help of getColumns.
- @param _xTable
- The table.
- @param _rName
- The name of the column.
- @param _bCase
- Is the column case sensitive.
- @param _bQueryForInfo
- If <TRUE/> the autoincrement and currency field will be read from the meta data, otherwise the following parameters will be used instead
- @param _bIsAutoIncrement
- <TRUE/> if the column is an autoincrement.
- @param _bIsCurrency
- <TRUE/> if the column is a currency field.
- @param _nDataType
- The data type of the column.
- */
- OOO_DLLPUBLIC_DBTOOLS
- ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>
- createSDBCXColumn( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _xTable,
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _xConnection,
- const ::rtl::OUString& _rName,
- sal_Bool _bCase,
- sal_Bool _bQueryForInfo = sal_True,
- sal_Bool _bIsAutoIncrement = sal_False,
- sal_Bool _bIsCurrency = sal_False,
- sal_Int32 _nDataType = com::sun::star::sdbc::DataType::OTHER);
-
- /** tries to locate the corresponding DataDefinitionSupplier for the given url and connection
- @param _rsUrl
- The URL used to connect to the database.
- @param _xConnection
- The connection used to find the correct driver.
- @param _rxFactory
- Used to create the drivermanager.
- @return
- The datadefintion object.
- */
- OOO_DLLPUBLIC_DBTOOLS ::com::sun::star::uno::Reference< ::com::sun::star::sdbcx::XTablesSupplier> getDataDefinitionByURLAndConnection(
- const ::rtl::OUString& _rsUrl,
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _xConnection,
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory);
-
- /** returns the table privileges to the given parameters
- @param _xMetaData
- The meta data.
- @param _sCatalog
- contains the catalog name
- @param _sSchema
- contains the schema name
- @param _sTable
- contains the table name
- */
- OOO_DLLPUBLIC_DBTOOLS
- sal_Int32 getTablePrivileges(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData>& _xMetaData,
- const ::rtl::OUString& _sCatalog,
- const ::rtl::OUString& _sSchema,
- const ::rtl::OUString& _sTable);
-
- typedef ::std::pair<sal_Bool,sal_Bool> TBoolPair;
- typedef ::std::pair< TBoolPair,sal_Int32 > ColumnInformation;
- typedef ::std::multimap< ::rtl::OUString, ColumnInformation, ::comphelper::UStringMixLess> ColumnInformationMap;
- /** collects the information about auto increment, currency and data type for the given column name.
- The column must be quoted, * is also valid.
- @param _xConnection
- The connection.
- @param _sComposedTableName
- The quoted table name. ccc.sss.ttt
- @param _sName
- The name of the column, or *
- @param _rInfo
- The information about the column(s).
- */
- OOO_DLLPUBLIC_DBTOOLS
- void collectColumnInformation( const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _xConnection,
- const ::rtl::OUString& _sComposedTableName,
- const ::rtl::OUString& _rName,
- ColumnInformationMap& _rInfo);
-
-
- /** adds a boolean comparison clause to the given SQL predicate
-
- @param _rExpression
- the expression which is to be compared with a boolean value
- @param _bValue
- the boolean value which the expression is to be compared with
- @param _nBooleanComparisonMode
- the boolean comparison mode to be used. Usually obtained from
- a css.sdb.DataSource's Settings member.
- @param _out_rSQLPredicate
- the buffer to which the comparison predicate will be appended
- */
- OOO_DLLPUBLIC_DBTOOLS void getBoleanComparisonPredicate(
- const ::rtl::OUString& _rExpression,
- const sal_Bool _bValue,
- const sal_Int32 _nBooleanComparisonMode,
- ::rtl::OUStringBuffer& _out_rSQLPredicate
- );
-
-//.........................................................................
-} // namespace dbtools
-//.........................................................................
-
-#endif // _CONNECTIVITY_DBTOOLS_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */