xref: /aoo41x/main/svx/source/form/dbtoolsclient.cxx (revision f6e50924)
1*f6e50924SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*f6e50924SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*f6e50924SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*f6e50924SAndrew Rist  * distributed with this work for additional information
6*f6e50924SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*f6e50924SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*f6e50924SAndrew Rist  * "License"); you may not use this file except in compliance
9*f6e50924SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*f6e50924SAndrew Rist  *
11*f6e50924SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*f6e50924SAndrew Rist  *
13*f6e50924SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*f6e50924SAndrew Rist  * software distributed under the License is distributed on an
15*f6e50924SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*f6e50924SAndrew Rist  * KIND, either express or implied.  See the License for the
17*f6e50924SAndrew Rist  * specific language governing permissions and limitations
18*f6e50924SAndrew Rist  * under the License.
19*f6e50924SAndrew Rist  *
20*f6e50924SAndrew Rist  *************************************************************/
21*f6e50924SAndrew Rist 
22*f6e50924SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_svx.hxx"
26cdf0e10cSrcweir #include <com/sun/star/sdbc/XConnection.hpp>
27cdf0e10cSrcweir #include <com/sun/star/sdbc/XDataSource.hpp>
28cdf0e10cSrcweir #include <com/sun/star/util/XNumberFormatsSupplier.hpp>
29cdf0e10cSrcweir #include <com/sun/star/sdb/SQLContext.hpp>
30cdf0e10cSrcweir #include "svx/dbtoolsclient.hxx"
31cdf0e10cSrcweir #include <osl/diagnose.h>
32cdf0e10cSrcweir #include <connectivity/formattedcolumnvalue.hxx>
33cdf0e10cSrcweir 
34cdf0e10cSrcweir //........................................................................
35cdf0e10cSrcweir namespace svxform
36cdf0e10cSrcweir {
37cdf0e10cSrcweir //........................................................................
38cdf0e10cSrcweir 
39cdf0e10cSrcweir 	using namespace ::connectivity::simple;
40cdf0e10cSrcweir 	using namespace ::com::sun::star::sdbc;
41cdf0e10cSrcweir 	using namespace ::com::sun::star::lang;
42cdf0e10cSrcweir 	using namespace ::com::sun::star::util;
43cdf0e10cSrcweir 	using namespace ::com::sun::star::uno;
44cdf0e10cSrcweir 	using namespace ::com::sun::star::beans;
45cdf0e10cSrcweir 	using namespace ::com::sun::star::sdb;
46cdf0e10cSrcweir 	using namespace ::com::sun::star::container;
47cdf0e10cSrcweir 
48cdf0e10cSrcweir 	//====================================================================
49cdf0e10cSrcweir 	//= ODbtoolsClient
50cdf0e10cSrcweir 	//====================================================================
51cdf0e10cSrcweir 	::osl::Mutex	ODbtoolsClient::s_aMutex;
52cdf0e10cSrcweir 	sal_Int32		ODbtoolsClient::s_nClients = 0;
53cdf0e10cSrcweir 	oslModule		ODbtoolsClient::s_hDbtoolsModule = NULL;
54cdf0e10cSrcweir 	createDataAccessToolsFactoryFunction
55cdf0e10cSrcweir 					ODbtoolsClient::s_pFactoryCreationFunc = NULL;
56cdf0e10cSrcweir 
57cdf0e10cSrcweir 	//--------------------------------------------------------------------
ODbtoolsClient()58cdf0e10cSrcweir 	ODbtoolsClient::ODbtoolsClient()
59cdf0e10cSrcweir 	{
60cdf0e10cSrcweir 		m_bCreateAlready = sal_False;
61cdf0e10cSrcweir 	}
62cdf0e10cSrcweir 
63cdf0e10cSrcweir 	//--------------------------------------------------------------------
ensureLoaded() const64cdf0e10cSrcweir 	bool ODbtoolsClient::ensureLoaded() const
65cdf0e10cSrcweir 	{
66cdf0e10cSrcweir 		if ( !m_bCreateAlready )
67cdf0e10cSrcweir         {
68cdf0e10cSrcweir 		    m_bCreateAlready = true;
69cdf0e10cSrcweir 
70cdf0e10cSrcweir             registerClient();
71cdf0e10cSrcweir 		    if ( s_pFactoryCreationFunc )
72cdf0e10cSrcweir 		    {	// loading the lib succeeded
73cdf0e10cSrcweir 			    void* pUntypedFactory = (*s_pFactoryCreationFunc)();
74cdf0e10cSrcweir 			    IDataAccessToolsFactory* pDBTFactory = static_cast< IDataAccessToolsFactory* >( pUntypedFactory );
75cdf0e10cSrcweir 			    OSL_ENSURE( pDBTFactory, "ODbtoolsClient::ODbtoolsClient: no factory returned!" );
76cdf0e10cSrcweir 			    if ( pDBTFactory )
77cdf0e10cSrcweir 			    {
78cdf0e10cSrcweir 				    m_xDataAccessFactory = pDBTFactory;
79cdf0e10cSrcweir 				    // by definition, the factory was aquired once
80cdf0e10cSrcweir 				    m_xDataAccessFactory->release();
81cdf0e10cSrcweir 			    }
82cdf0e10cSrcweir 		    }
83cdf0e10cSrcweir         }
84cdf0e10cSrcweir 		return m_xDataAccessFactory.is();
85cdf0e10cSrcweir 	}
86cdf0e10cSrcweir 
87cdf0e10cSrcweir 	//--------------------------------------------------------------------
~ODbtoolsClient()88cdf0e10cSrcweir 	ODbtoolsClient::~ODbtoolsClient()
89cdf0e10cSrcweir 	{
90cdf0e10cSrcweir 		// clear the factory _before_ revoking the client
91cdf0e10cSrcweir 		// (the revocation may unload the DBT lib)
92cdf0e10cSrcweir 		m_xDataAccessFactory = NULL;
93cdf0e10cSrcweir 		// revoke the client
94cdf0e10cSrcweir 		if ( m_bCreateAlready )
95cdf0e10cSrcweir 			revokeClient();
96cdf0e10cSrcweir 	}
97cdf0e10cSrcweir 
98cdf0e10cSrcweir 	//--------------------------------------------------------------------
thisModule()99cdf0e10cSrcweir     extern "C" { static void SAL_CALL thisModule() {} }
100cdf0e10cSrcweir 
registerClient()101cdf0e10cSrcweir 	void ODbtoolsClient::registerClient()
102cdf0e10cSrcweir 	{
103cdf0e10cSrcweir 		::osl::MutexGuard aGuard(s_aMutex);
104cdf0e10cSrcweir 		if (1 == ++s_nClients)
105cdf0e10cSrcweir 		{
106cdf0e10cSrcweir 			OSL_ENSURE(NULL == s_hDbtoolsModule, "ODbtoolsClient::registerClient: inconsistence: already have a module!");
107cdf0e10cSrcweir 			OSL_ENSURE(NULL == s_pFactoryCreationFunc, "ODbtoolsClient::registerClient: inconsistence: already have a factory function!");
108cdf0e10cSrcweir 
109cdf0e10cSrcweir 			const ::rtl::OUString sModuleName = ::rtl::OUString::createFromAscii(
110cdf0e10cSrcweir 				SVLIBRARY( "dbtools" )
111cdf0e10cSrcweir 			);
112cdf0e10cSrcweir 
113cdf0e10cSrcweir 			// load the dbtools library
114cdf0e10cSrcweir 			s_hDbtoolsModule = osl_loadModuleRelative(
115cdf0e10cSrcweir                 &thisModule, sModuleName.pData, 0);
116cdf0e10cSrcweir 			OSL_ENSURE(NULL != s_hDbtoolsModule, "ODbtoolsClient::registerClient: could not load the dbtools library!");
117cdf0e10cSrcweir 			if (NULL != s_hDbtoolsModule)
118cdf0e10cSrcweir 			{
119cdf0e10cSrcweir 				// get the symbol for the method creating the factory
120cdf0e10cSrcweir 				const ::rtl::OUString sFactoryCreationFunc = ::rtl::OUString::createFromAscii("createDataAccessToolsFactory");
121cdf0e10cSrcweir 				//  reinterpret_cast<createDataAccessToolsFactoryFunction>
122cdf0e10cSrcweir 				s_pFactoryCreationFunc = (createDataAccessToolsFactoryFunction)(
123cdf0e10cSrcweir 					osl_getFunctionSymbol(s_hDbtoolsModule, sFactoryCreationFunc.pData));
124cdf0e10cSrcweir 
125cdf0e10cSrcweir 				if (NULL == s_pFactoryCreationFunc)
126cdf0e10cSrcweir 				{	// did not find the symbol
127cdf0e10cSrcweir 					OSL_ENSURE(sal_False, "ODbtoolsClient::registerClient: could not find the symbol for creating the factory!");
128cdf0e10cSrcweir 					osl_unloadModule(s_hDbtoolsModule);
129cdf0e10cSrcweir 					s_hDbtoolsModule = NULL;
130cdf0e10cSrcweir 				}
131cdf0e10cSrcweir 			}
132cdf0e10cSrcweir 		}
133cdf0e10cSrcweir 	}
134cdf0e10cSrcweir 
135cdf0e10cSrcweir 	//--------------------------------------------------------------------
revokeClient()136cdf0e10cSrcweir 	void ODbtoolsClient::revokeClient()
137cdf0e10cSrcweir 	{
138cdf0e10cSrcweir 		::osl::MutexGuard aGuard(s_aMutex);
139cdf0e10cSrcweir 		if (0 == --s_nClients)
140cdf0e10cSrcweir 		{
141cdf0e10cSrcweir 			s_pFactoryCreationFunc = NULL;
142cdf0e10cSrcweir 			if (s_hDbtoolsModule)
143cdf0e10cSrcweir 				osl_unloadModule(s_hDbtoolsModule);
144cdf0e10cSrcweir 			s_hDbtoolsModule = NULL;
145cdf0e10cSrcweir 		}
146cdf0e10cSrcweir 
147cdf0e10cSrcweir 		OSL_ENSURE(s_nClients >= 0,"Illegall call of revokeClient()");
148cdf0e10cSrcweir 	}
149cdf0e10cSrcweir 
150cdf0e10cSrcweir 	//====================================================================
151cdf0e10cSrcweir 	//= OStaticDataAccessTools
152cdf0e10cSrcweir 	//====================================================================
153cdf0e10cSrcweir 	//--------------------------------------------------------------------
OStaticDataAccessTools()154cdf0e10cSrcweir 	OStaticDataAccessTools::OStaticDataAccessTools()
155cdf0e10cSrcweir 	{
156cdf0e10cSrcweir 	}
157cdf0e10cSrcweir 
158cdf0e10cSrcweir 	//--------------------------------------------------------------------
159cdf0e10cSrcweir 	//add by BerryJia for fixing Bug97420 Time:2002-9-12-11:00(PRC time)
ensureLoaded() const160cdf0e10cSrcweir 	bool OStaticDataAccessTools::ensureLoaded() const
161cdf0e10cSrcweir 	{
162cdf0e10cSrcweir         if ( !ODbtoolsClient::ensureLoaded() )
163cdf0e10cSrcweir             return false;
164cdf0e10cSrcweir 	 	m_xDataAccessTools = getFactory()->getDataAccessTools();
165cdf0e10cSrcweir         return m_xDataAccessTools.is();
166cdf0e10cSrcweir 	}
167cdf0e10cSrcweir 
168cdf0e10cSrcweir 	//--------------------------------------------------------------------
getNumberFormats(const Reference<XConnection> & _rxConn,sal_Bool _bAllowDefault) const169cdf0e10cSrcweir 	Reference< XNumberFormatsSupplier > OStaticDataAccessTools::getNumberFormats(const Reference< XConnection>& _rxConn, sal_Bool _bAllowDefault) const
170cdf0e10cSrcweir 	{
171cdf0e10cSrcweir 		Reference< XNumberFormatsSupplier > xReturn;
172cdf0e10cSrcweir 		if ( ensureLoaded() )
173cdf0e10cSrcweir 			xReturn = m_xDataAccessTools->getNumberFormats(_rxConn, _bAllowDefault);
174cdf0e10cSrcweir 		return xReturn;
175cdf0e10cSrcweir 	}
176cdf0e10cSrcweir 
177cdf0e10cSrcweir 	//--------------------------------------------------------------------
getDefaultNumberFormat(const Reference<XPropertySet> & _xColumn,const Reference<XNumberFormatTypes> & _xTypes,const Locale & _rLocale)178cdf0e10cSrcweir 	sal_Int32 OStaticDataAccessTools::getDefaultNumberFormat( const Reference< XPropertySet >& _xColumn, const Reference< XNumberFormatTypes >& _xTypes, const Locale& _rLocale )
179cdf0e10cSrcweir     {
180cdf0e10cSrcweir         sal_Int32 nReturn = 0;
181cdf0e10cSrcweir 		if ( ensureLoaded() )
182cdf0e10cSrcweir 			nReturn = m_xDataAccessTools->getDefaultNumberFormat( _xColumn, _xTypes, _rLocale );
183cdf0e10cSrcweir 		return nReturn;
184cdf0e10cSrcweir     }
185cdf0e10cSrcweir 
186cdf0e10cSrcweir 	//--------------------------------------------------------------------
getConnection_withFeedback(const::rtl::OUString & _rDataSourceName,const::rtl::OUString & _rUser,const::rtl::OUString & _rPwd,const Reference<XMultiServiceFactory> & _rxFactory) const187cdf0e10cSrcweir 	Reference< XConnection> OStaticDataAccessTools::getConnection_withFeedback(const ::rtl::OUString& _rDataSourceName,
188cdf0e10cSrcweir 		const ::rtl::OUString& _rUser, const ::rtl::OUString& _rPwd, const Reference< XMultiServiceFactory>& _rxFactory) const
189cdf0e10cSrcweir 			SAL_THROW ( (SQLException) )
190cdf0e10cSrcweir 	{
191cdf0e10cSrcweir 		Reference< XConnection > xReturn;
192cdf0e10cSrcweir 		if ( ensureLoaded() )
193cdf0e10cSrcweir 			xReturn = m_xDataAccessTools->getConnection_withFeedback(_rDataSourceName, _rUser, _rPwd, _rxFactory);
194cdf0e10cSrcweir 		return xReturn;
195cdf0e10cSrcweir 	}
196cdf0e10cSrcweir 
197cdf0e10cSrcweir 	//--------------------------------------------------------------------
connectRowset(const Reference<XRowSet> & _rxRowSet,const Reference<XMultiServiceFactory> & _rxFactory,sal_Bool _bSetAsActiveConnection) const198cdf0e10cSrcweir 	Reference< XConnection > OStaticDataAccessTools::connectRowset( const Reference< XRowSet >& _rxRowSet,
199cdf0e10cSrcweir         const Reference< XMultiServiceFactory >& _rxFactory, sal_Bool _bSetAsActiveConnection ) const
200cdf0e10cSrcweir         SAL_THROW ( ( SQLException, WrappedTargetException, RuntimeException ) )
201cdf0e10cSrcweir 	{
202cdf0e10cSrcweir 		Reference< XConnection > xReturn;
203cdf0e10cSrcweir 		if ( ensureLoaded() )
204cdf0e10cSrcweir 			xReturn = m_xDataAccessTools->connectRowset( _rxRowSet, _rxFactory, _bSetAsActiveConnection );
205cdf0e10cSrcweir 		return xReturn;
206cdf0e10cSrcweir 	}
207cdf0e10cSrcweir 
208cdf0e10cSrcweir 	//--------------------------------------------------------------------
getRowSetConnection(const Reference<XRowSet> & _rxRowSet) const209cdf0e10cSrcweir 	Reference< XConnection > OStaticDataAccessTools::getRowSetConnection(const Reference< XRowSet >& _rxRowSet) const SAL_THROW ( (RuntimeException) )
210cdf0e10cSrcweir 	{
211cdf0e10cSrcweir 		Reference< XConnection > xReturn;
212cdf0e10cSrcweir 		if ( ensureLoaded() )
213cdf0e10cSrcweir 			xReturn = m_xDataAccessTools->getRowSetConnection(_rxRowSet);
214cdf0e10cSrcweir 		return xReturn;
215cdf0e10cSrcweir 	}
216cdf0e10cSrcweir 
217cdf0e10cSrcweir 	//--------------------------------------------------------------------
TransferFormComponentProperties(const Reference<XPropertySet> & _rxOld,const Reference<XPropertySet> & _rxNew,const Locale & _rLocale) const218cdf0e10cSrcweir 	void OStaticDataAccessTools::TransferFormComponentProperties(const Reference< XPropertySet>& _rxOld,
219cdf0e10cSrcweir 		const Reference< XPropertySet>& _rxNew, const Locale& _rLocale) const
220cdf0e10cSrcweir 	{
221cdf0e10cSrcweir 		if ( ensureLoaded() )
222cdf0e10cSrcweir 			m_xDataAccessTools->TransferFormComponentProperties(_rxOld, _rxNew, _rLocale);
223cdf0e10cSrcweir 	}
224cdf0e10cSrcweir 
225cdf0e10cSrcweir 	//--------------------------------------------------------------------
quoteName(const::rtl::OUString & _rQuote,const::rtl::OUString & _rName) const226cdf0e10cSrcweir 	::rtl::OUString OStaticDataAccessTools::quoteName(const ::rtl::OUString& _rQuote, const ::rtl::OUString& _rName) const
227cdf0e10cSrcweir 	{
228cdf0e10cSrcweir 		::rtl::OUString sReturn;
229cdf0e10cSrcweir 		if ( ensureLoaded() )
230cdf0e10cSrcweir 			sReturn = m_xDataAccessTools->quoteName(_rQuote, _rName);
231cdf0e10cSrcweir 		return sReturn;
232cdf0e10cSrcweir 	}
233cdf0e10cSrcweir 
234cdf0e10cSrcweir 	// ------------------------------------------------
composeTableNameForSelect(const Reference<XConnection> & _rxConnection,const Reference<XPropertySet> & _xTable) const235cdf0e10cSrcweir 	::rtl::OUString OStaticDataAccessTools::composeTableNameForSelect( const Reference< XConnection >& _rxConnection, const Reference< XPropertySet>& _xTable ) const
236cdf0e10cSrcweir     {
237cdf0e10cSrcweir 		::rtl::OUString sReturn;
238cdf0e10cSrcweir 		if ( ensureLoaded() )
239cdf0e10cSrcweir 			sReturn = m_xDataAccessTools->composeTableNameForSelect( _rxConnection, _xTable );
240cdf0e10cSrcweir         return sReturn;
241cdf0e10cSrcweir     }
242cdf0e10cSrcweir 
243cdf0e10cSrcweir 	//--------------------------------------------------------------------
prependContextInfo(SQLException & _rException,const Reference<XInterface> & _rxContext,const::rtl::OUString & _rContextDescription,const::rtl::OUString & _rContextDetails) const244cdf0e10cSrcweir 	SQLContext OStaticDataAccessTools::prependContextInfo(SQLException& _rException, const Reference< XInterface >& _rxContext,
245cdf0e10cSrcweir 		const ::rtl::OUString& _rContextDescription, const ::rtl::OUString& _rContextDetails) const
246cdf0e10cSrcweir 	{
247cdf0e10cSrcweir 		SQLContext aReturn;
248cdf0e10cSrcweir 		if ( ensureLoaded() )
249cdf0e10cSrcweir 			aReturn = m_xDataAccessTools->prependContextInfo(_rException, _rxContext, _rContextDescription, _rContextDetails);
250cdf0e10cSrcweir 		return aReturn;
251cdf0e10cSrcweir 	}
252cdf0e10cSrcweir 
253cdf0e10cSrcweir 	//----------------------------------------------------------------
getDataSource(const::rtl::OUString & _rsRegisteredName,const Reference<XMultiServiceFactory> & _rxFactory) const254cdf0e10cSrcweir 	Reference< XDataSource > OStaticDataAccessTools::getDataSource( const ::rtl::OUString& _rsRegisteredName, const Reference< XMultiServiceFactory>& _rxFactory ) const
255cdf0e10cSrcweir 	{
256cdf0e10cSrcweir 		Reference< XDataSource > xReturn;
257cdf0e10cSrcweir 		if ( ensureLoaded() )
258cdf0e10cSrcweir 			xReturn = m_xDataAccessTools->getDataSource(_rsRegisteredName,_rxFactory);
259cdf0e10cSrcweir 		return xReturn;
260cdf0e10cSrcweir 	}
261cdf0e10cSrcweir 
262cdf0e10cSrcweir 	//----------------------------------------------------------------
canInsert(const Reference<XPropertySet> & _rxCursorSet) const263cdf0e10cSrcweir 	sal_Bool OStaticDataAccessTools::canInsert(const Reference< XPropertySet>& _rxCursorSet) const
264cdf0e10cSrcweir 	{
265cdf0e10cSrcweir 		sal_Bool bRet = sal_False;
266cdf0e10cSrcweir 		if ( ensureLoaded() )
267cdf0e10cSrcweir 			bRet = m_xDataAccessTools->canInsert( _rxCursorSet );
268cdf0e10cSrcweir 		return bRet;
269cdf0e10cSrcweir 	}
270cdf0e10cSrcweir 
271cdf0e10cSrcweir 	//----------------------------------------------------------------
canUpdate(const Reference<XPropertySet> & _rxCursorSet) const272cdf0e10cSrcweir 	sal_Bool OStaticDataAccessTools::canUpdate(const Reference< XPropertySet>& _rxCursorSet) const
273cdf0e10cSrcweir 	{
274cdf0e10cSrcweir 		sal_Bool bRet = sal_False;
275cdf0e10cSrcweir 		if ( ensureLoaded() )
276cdf0e10cSrcweir 			bRet = m_xDataAccessTools->canUpdate( _rxCursorSet );
277cdf0e10cSrcweir 		return bRet;
278cdf0e10cSrcweir 	}
279cdf0e10cSrcweir 
280cdf0e10cSrcweir 	//----------------------------------------------------------------
canDelete(const Reference<XPropertySet> & _rxCursorSet) const281cdf0e10cSrcweir 	sal_Bool OStaticDataAccessTools::canDelete(const Reference< XPropertySet>& _rxCursorSet) const
282cdf0e10cSrcweir 	{
283cdf0e10cSrcweir 		sal_Bool bRet = sal_False;
284cdf0e10cSrcweir 		if ( ensureLoaded() )
285cdf0e10cSrcweir 			bRet = m_xDataAccessTools->canDelete( _rxCursorSet );
286cdf0e10cSrcweir 		return bRet;
287cdf0e10cSrcweir 	}
288cdf0e10cSrcweir 
289cdf0e10cSrcweir 	//----------------------------------------------------------------
getFieldsByCommandDescriptor(const Reference<XConnection> & _rxConnection,const sal_Int32 _nCommandType,const::rtl::OUString & _rCommand,Reference<XComponent> & _rxKeepFieldsAlive,::dbtools::SQLExceptionInfo * _pErrorInfo)290cdf0e10cSrcweir 	Reference< XNameAccess > OStaticDataAccessTools::getFieldsByCommandDescriptor( const Reference< XConnection >& _rxConnection,
291cdf0e10cSrcweir 		const sal_Int32 _nCommandType, const ::rtl::OUString& _rCommand,
292cdf0e10cSrcweir 			Reference< XComponent >& _rxKeepFieldsAlive, ::dbtools::SQLExceptionInfo* _pErrorInfo ) SAL_THROW( ( ) )
293cdf0e10cSrcweir 	{
294cdf0e10cSrcweir 		Reference< XNameAccess > aFields;
295cdf0e10cSrcweir 		if ( ensureLoaded() )
296cdf0e10cSrcweir 			aFields = m_xDataAccessTools->getFieldsByCommandDescriptor( _rxConnection, _nCommandType,
297cdf0e10cSrcweir 				_rCommand, _rxKeepFieldsAlive, _pErrorInfo );
298cdf0e10cSrcweir 
299cdf0e10cSrcweir 		return aFields;
300cdf0e10cSrcweir 	}
301cdf0e10cSrcweir 
302cdf0e10cSrcweir 	//----------------------------------------------------------------
getFieldNamesByCommandDescriptor(const Reference<XConnection> & _rxConnection,const sal_Int32 _nCommandType,const::rtl::OUString & _rCommand,::dbtools::SQLExceptionInfo * _pErrorInfo)303cdf0e10cSrcweir 	Sequence< ::rtl::OUString > OStaticDataAccessTools::getFieldNamesByCommandDescriptor(
304cdf0e10cSrcweir 		const Reference< XConnection >& _rxConnection, const sal_Int32 _nCommandType,
305cdf0e10cSrcweir 		const ::rtl::OUString& _rCommand, ::dbtools::SQLExceptionInfo* _pErrorInfo ) SAL_THROW( ( ) )
306cdf0e10cSrcweir 	{
307cdf0e10cSrcweir 		Sequence< ::rtl::OUString > aNames;
308cdf0e10cSrcweir 		if ( ensureLoaded() )
309cdf0e10cSrcweir 			aNames = m_xDataAccessTools->getFieldNamesByCommandDescriptor( _rxConnection, _nCommandType,
310cdf0e10cSrcweir 				_rCommand, _pErrorInfo );
311cdf0e10cSrcweir 		return aNames;
312cdf0e10cSrcweir 	}
313cdf0e10cSrcweir 
314cdf0e10cSrcweir 	//----------------------------------------------------------------
isEmbeddedInDatabase(const Reference<XInterface> & _rxComponent,Reference<XConnection> & _rxActualConnection)315cdf0e10cSrcweir     bool OStaticDataAccessTools::isEmbeddedInDatabase( const Reference< XInterface >& _rxComponent, Reference< XConnection >& _rxActualConnection )
316cdf0e10cSrcweir     {
317cdf0e10cSrcweir         bool bReturn = false;
318cdf0e10cSrcweir 		if ( ensureLoaded() )
319cdf0e10cSrcweir 			bReturn = m_xDataAccessTools->isEmbeddedInDatabase( _rxComponent, _rxActualConnection );
320cdf0e10cSrcweir         return bReturn;
321cdf0e10cSrcweir     }
322cdf0e10cSrcweir 
323cdf0e10cSrcweir 	//----------------------------------------------------------------
isEmbeddedInDatabase(const Reference<XInterface> & _rxComponent)324cdf0e10cSrcweir     bool OStaticDataAccessTools::isEmbeddedInDatabase( const Reference< XInterface >& _rxComponent )
325cdf0e10cSrcweir     {
326cdf0e10cSrcweir         bool bReturn = false;
327cdf0e10cSrcweir 		if ( ensureLoaded() )
328cdf0e10cSrcweir         {
329cdf0e10cSrcweir             Reference< XConnection > xDummy;
330cdf0e10cSrcweir 			bReturn = m_xDataAccessTools->isEmbeddedInDatabase( _rxComponent, xDummy );
331cdf0e10cSrcweir         }
332cdf0e10cSrcweir         return bReturn;
333cdf0e10cSrcweir     }
334cdf0e10cSrcweir 
335cdf0e10cSrcweir     //====================================================================
336cdf0e10cSrcweir 	//= DBToolsObjectFactory
337cdf0e10cSrcweir 	//====================================================================
338cdf0e10cSrcweir 	//----------------------------------------------------------------
DBToolsObjectFactory()339cdf0e10cSrcweir     DBToolsObjectFactory::DBToolsObjectFactory()
340cdf0e10cSrcweir     {
341cdf0e10cSrcweir     }
342cdf0e10cSrcweir 
343cdf0e10cSrcweir 	//----------------------------------------------------------------
~DBToolsObjectFactory()344cdf0e10cSrcweir     DBToolsObjectFactory::~DBToolsObjectFactory()
345cdf0e10cSrcweir     {
346cdf0e10cSrcweir     }
347cdf0e10cSrcweir 
348cdf0e10cSrcweir 	//----------------------------------------------------------------
createFormattedColumnValue(const::comphelper::ComponentContext & _rContext,const Reference<XRowSet> & _rxRowSet,const Reference<XPropertySet> & _rxColumn)349cdf0e10cSrcweir     ::std::auto_ptr< ::dbtools::FormattedColumnValue > DBToolsObjectFactory::createFormattedColumnValue(
350cdf0e10cSrcweir         const ::comphelper::ComponentContext& _rContext, const Reference< XRowSet >& _rxRowSet, const Reference< XPropertySet >& _rxColumn )
351cdf0e10cSrcweir     {
352cdf0e10cSrcweir         ::std::auto_ptr< ::dbtools::FormattedColumnValue > pValue;
353cdf0e10cSrcweir 		if ( ensureLoaded() )
354cdf0e10cSrcweir             pValue = getFactory()->createFormattedColumnValue( _rContext, _rxRowSet, _rxColumn );
355cdf0e10cSrcweir         return pValue;
356cdf0e10cSrcweir     }
357cdf0e10cSrcweir 
358cdf0e10cSrcweir //........................................................................
359cdf0e10cSrcweir }	// namespace svxform
360cdf0e10cSrcweir //........................................................................
361cdf0e10cSrcweir 
362cdf0e10cSrcweir 
363