unodatbr.cxx (e9faf1d9) unodatbr.cxx (1636bfc2)
1/**************************************************************
1/**************************************************************
2 *
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
19 *
20 *************************************************************/
21
22
23
24// MARKER(update_precomp.py): autogen include statement, do not remove
25#include "precompiled_dbui.hxx"
26
27#include "browserids.hxx"

--- 280 unchanged lines hidden (view full) ---

308 }
309 return pId->getImplementationId();
310}
311
312//------------------------------------------------------------------------------
313void SAL_CALL SbaTableQueryBrowser::disposing()
314{
315 ::vos::OGuard aGuard(Application::GetSolarMutex());
20 *************************************************************/
21
22
23
24// MARKER(update_precomp.py): autogen include statement, do not remove
25#include "precompiled_dbui.hxx"
26
27#include "browserids.hxx"

--- 280 unchanged lines hidden (view full) ---

308 }
309 return pId->getImplementationId();
310}
311
312//------------------------------------------------------------------------------
313void SAL_CALL SbaTableQueryBrowser::disposing()
314{
315 ::vos::OGuard aGuard(Application::GetSolarMutex());
316 // doin' a lot of VCL stuff here -> lock the SolarMutex
316 // doing a lot of VCL stuff here -> lock the SolarMutex
317
318 // kiss our listeners goodbye
317
318 // kiss our listeners goodbye
319
319
320 ::com::sun::star::lang::EventObject aEvt(*this);
321 m_aSelectionListeners.disposeAndClear(aEvt);
322 m_aContextMenuInterceptors.disposeAndClear(aEvt);
323
324 // reset the content's tree view: it holds a reference to our model which is to be deleted immediately,
325 // and it will live longer than we do.
326 if (getBrowserView())
327 getBrowserView()->setTreeView(NULL);

--- 186 unchanged lines hidden (view full) ---

514 // TODO: there's no API at all for this. The method which comes nearest to what we need is
515 // "getStructuredFilter", but it returns pure column names only. That is, for a statement like
516 // "SELECT * FROM <table> WHERE <other_table>.<column> = <value>", it will return "<column>". But
517 // there's no API at all to retrieve the information about "<other_table>" - which is what would
518 // be needed here.
519 // That'd be a chance to replace getStructuredFilter with something more reasonable. This method
520 // has at least one other problem: For a clause like "<column> != <value>", it will return "<column>"
521 // as column name, "NOT_EQUAL" as operator, and "!= <value>" as value, effectively duplicating the
320 ::com::sun::star::lang::EventObject aEvt(*this);
321 m_aSelectionListeners.disposeAndClear(aEvt);
322 m_aContextMenuInterceptors.disposeAndClear(aEvt);
323
324 // reset the content's tree view: it holds a reference to our model which is to be deleted immediately,
325 // and it will live longer than we do.
326 if (getBrowserView())
327 getBrowserView()->setTreeView(NULL);

--- 186 unchanged lines hidden (view full) ---

514 // TODO: there's no API at all for this. The method which comes nearest to what we need is
515 // "getStructuredFilter", but it returns pure column names only. That is, for a statement like
516 // "SELECT * FROM <table> WHERE <other_table>.<column> = <value>", it will return "<column>". But
517 // there's no API at all to retrieve the information about "<other_table>" - which is what would
518 // be needed here.
519 // That'd be a chance to replace getStructuredFilter with something more reasonable. This method
520 // has at least one other problem: For a clause like "<column> != <value>", it will return "<column>"
521 // as column name, "NOT_EQUAL" as operator, and "!= <value>" as value, effectively duplicating the
522 // information about the operator, and beding all clients to manually remove the "!=" from the value
522 // information about the operator, and begging all clients to manually remove the "!=" from the value
523 // string.
523 // string.
524 // So, what really would be handy, is some
524 // So, what really would be handy, is some
525 // XNormalizedFilter getNormalizedFilter();
526 // with
527 // interface XDisjunctiveFilterExpression
528 // {
529 // XConjunctiveFilterTerm getTerm( int index );
530 // }
531 // interface XConjunctiveFilterTerm
532 // {

--- 283 unchanged lines hidden (view full) ---

816 // help text to display for the column
817 Any aDescription;
818 if ( xColPSI->hasPropertyByName( PROPERTY_HELPTEXT ) )
819 aDescription = xColumn->getPropertyValue( PROPERTY_HELPTEXT );
820 ::rtl::OUString sTemp;
821 aDescription >>= sTemp;
822 if ( !sTemp.getLength() )
823 xColumn->getPropertyValue( PROPERTY_DESCRIPTION ) >>= sTemp;
525 // XNormalizedFilter getNormalizedFilter();
526 // with
527 // interface XDisjunctiveFilterExpression
528 // {
529 // XConjunctiveFilterTerm getTerm( int index );
530 // }
531 // interface XConjunctiveFilterTerm
532 // {

--- 283 unchanged lines hidden (view full) ---

816 // help text to display for the column
817 Any aDescription;
818 if ( xColPSI->hasPropertyByName( PROPERTY_HELPTEXT ) )
819 aDescription = xColumn->getPropertyValue( PROPERTY_HELPTEXT );
820 ::rtl::OUString sTemp;
821 aDescription >>= sTemp;
822 if ( !sTemp.getLength() )
823 xColumn->getPropertyValue( PROPERTY_DESCRIPTION ) >>= sTemp;
824
824
825 aDescription <<= sTemp;
826 aInitialValues.push_back( NamedValue( PROPERTY_HELPTEXT, aDescription ) );
827
828 // ... horizontal justify
829 Any aAlign; aAlign <<= sal_Int16( 0 );
830 Any aColAlign( xColumn->getPropertyValue( PROPERTY_ALIGN ) );
831 if ( aColAlign.hasValue() )
832 aAlign <<= sal_Int16( ::comphelper::getINT32( aColAlign ) );

--- 589 unchanged lines hidden (view full) ---

1422 ++aNext;
1423
1424 // remove it
1425 m_aExternalFeatures.erase( aLoop );
1426
1427 // maybe update the UI
1428 implCheckExternalSlot( nSlotId );
1429
825 aDescription <<= sTemp;
826 aInitialValues.push_back( NamedValue( PROPERTY_HELPTEXT, aDescription ) );
827
828 // ... horizontal justify
829 Any aAlign; aAlign <<= sal_Int16( 0 );
830 Any aColAlign( xColumn->getPropertyValue( PROPERTY_ALIGN ) );
831 if ( aColAlign.hasValue() )
832 aAlign <<= sal_Int16( ::comphelper::getINT32( aColAlign ) );

--- 589 unchanged lines hidden (view full) ---

1422 ++aNext;
1423
1424 // remove it
1425 m_aExternalFeatures.erase( aLoop );
1426
1427 // maybe update the UI
1428 implCheckExternalSlot( nSlotId );
1429
1430 // continue, the same XDispatch may be resposible for more than one URL
1430 // continue, the same XDispatch may be responsible for more than one URL
1431 aLoop = aNext;
1432 }
1433 }
1434 else
1435 {
1436 Reference<XConnection> xCon(_rSource.Source, UNO_QUERY);
1437 if ( xCon.is() && m_pTreeView )
1438 { // our connection is in dispose so we have to find the entry equal with this connection
1439 // and close it what means to collapse the entry
1440 // get the top-level representing the removed data source
1441 SvLBoxEntry* pDSLoop = m_pTreeView->getListBox().FirstChild(NULL);
1442 while (pDSLoop)
1443 {
1444 DBTreeListUserData* pData = static_cast<DBTreeListUserData*>(pDSLoop->GetUserData());
1445 if ( pData && pData->xConnection == xCon )
1446 {
1431 aLoop = aNext;
1432 }
1433 }
1434 else
1435 {
1436 Reference<XConnection> xCon(_rSource.Source, UNO_QUERY);
1437 if ( xCon.is() && m_pTreeView )
1438 { // our connection is in dispose so we have to find the entry equal with this connection
1439 // and close it what means to collapse the entry
1440 // get the top-level representing the removed data source
1441 SvLBoxEntry* pDSLoop = m_pTreeView->getListBox().FirstChild(NULL);
1442 while (pDSLoop)
1443 {
1444 DBTreeListUserData* pData = static_cast<DBTreeListUserData*>(pDSLoop->GetUserData());
1445 if ( pData && pData->xConnection == xCon )
1446 {
1447 // we set the conenction to null to avoid a second disposing of the connection
1447 // we set the connection to null to avoid a second disposing of the connection
1448 pData->xConnection.clear();
1449 closeConnection(pDSLoop,sal_False);
1450 break;
1451 }
1452
1453 pDSLoop = m_pTreeView->getListBox().NextSibling(pDSLoop);
1454 }
1455 }

--- 26 unchanged lines hidden (view full) ---

1482 }
1483 m_aExternalFeatures.clear();
1484}
1485
1486// -------------------------------------------------------------------------
1487sal_Bool SAL_CALL SbaTableQueryBrowser::select( const Any& _rSelection ) throw (IllegalArgumentException, RuntimeException)
1488{
1489 ::vos::OGuard aGuard(Application::GetSolarMutex());
1448 pData->xConnection.clear();
1449 closeConnection(pDSLoop,sal_False);
1450 break;
1451 }
1452
1453 pDSLoop = m_pTreeView->getListBox().NextSibling(pDSLoop);
1454 }
1455 }

--- 26 unchanged lines hidden (view full) ---

1482 }
1483 m_aExternalFeatures.clear();
1484}
1485
1486// -------------------------------------------------------------------------
1487sal_Bool SAL_CALL SbaTableQueryBrowser::select( const Any& _rSelection ) throw (IllegalArgumentException, RuntimeException)
1488{
1489 ::vos::OGuard aGuard(Application::GetSolarMutex());
1490 // doin' a lot of VCL stuff here -> lock the SolarMutex
1490 // doing a lot of VCL stuff here -> lock the SolarMutex
1491
1492 Sequence< PropertyValue > aDescriptorSequence;
1493 if (!(_rSelection >>= aDescriptorSequence))
1494 throw IllegalArgumentException(::rtl::OUString(), *this, 1);
1495 // TODO: error message
1496
1497 ODataAccessDescriptor aDescriptor;
1498 try
1499 {
1500 aDescriptor = ODataAccessDescriptor(aDescriptorSequence);
1501 }
1502 catch(const Exception&)
1503 {
1504 OSL_ENSURE(sal_False, "SbaTableQueryBrowser::select: could not extract the descriptor!");
1505 }
1506
1491
1492 Sequence< PropertyValue > aDescriptorSequence;
1493 if (!(_rSelection >>= aDescriptorSequence))
1494 throw IllegalArgumentException(::rtl::OUString(), *this, 1);
1495 // TODO: error message
1496
1497 ODataAccessDescriptor aDescriptor;
1498 try
1499 {
1500 aDescriptor = ODataAccessDescriptor(aDescriptorSequence);
1501 }
1502 catch(const Exception&)
1503 {
1504 OSL_ENSURE(sal_False, "SbaTableQueryBrowser::select: could not extract the descriptor!");
1505 }
1506
1507 // check the precense of the props we need
1507 // check the presence of the props we need
1508 if ( !(aDescriptor.has(daDataSource) || aDescriptor.has(daDatabaseLocation)) || !aDescriptor.has(daCommand) || !aDescriptor.has(daCommandType))
1509 throw IllegalArgumentException(::rtl::OUString(), *this, 1);
1510 // TODO: error message
1511
1512 return implSelect(aDescriptor,sal_True);
1513}
1514
1515// -------------------------------------------------------------------------

--- 742 unchanged lines hidden (view full) ---

2258 try
2259 {
2260 Reference< XWarningsSupplier > xWarnings(xConnection, UNO_QUERY);
2261 if (xWarnings.is())
2262 xWarnings->clearWarnings();
2263
2264 // first insert the views because the tables can also include
2265 // views but that time the bitmap is the wrong one
1508 if ( !(aDescriptor.has(daDataSource) || aDescriptor.has(daDatabaseLocation)) || !aDescriptor.has(daCommand) || !aDescriptor.has(daCommandType))
1509 throw IllegalArgumentException(::rtl::OUString(), *this, 1);
1510 // TODO: error message
1511
1512 return implSelect(aDescriptor,sal_True);
1513}
1514
1515// -------------------------------------------------------------------------

--- 742 unchanged lines hidden (view full) ---

2258 try
2259 {
2260 Reference< XWarningsSupplier > xWarnings(xConnection, UNO_QUERY);
2261 if (xWarnings.is())
2262 xWarnings->clearWarnings();
2263
2264 // first insert the views because the tables can also include
2265 // views but that time the bitmap is the wrong one
2266 // the nameaccess will be overwriten in populateTree
2266 // the nameaccess will be overwritten in populateTree
2267 Reference<XViewsSupplier> xViewSup(xConnection,UNO_QUERY);
2268 if(xViewSup.is())
2269 populateTree( xViewSup->getViews(), _pParent, etTableOrView );
2270
2271 Reference<XTablesSupplier> xTabSup(xConnection,UNO_QUERY);
2272 if(xTabSup.is())
2273 {
2274 populateTree( xTabSup->getTables(), _pParent, etTableOrView );

--- 93 unchanged lines hidden (view full) ---

2368 Reference< XNameAccess > xNameAccess(pData->xContainer,UNO_QUERY);
2369 if ( xNameAccess.is() )
2370 pEntryData->xContainer.set(xNameAccess->getByName(aName),UNO_QUERY);
2371 }
2372 catch(const Exception& )
2373 {
2374 DBG_UNHANDLED_EXCEPTION();
2375 }
2267 Reference<XViewsSupplier> xViewSup(xConnection,UNO_QUERY);
2268 if(xViewSup.is())
2269 populateTree( xViewSup->getViews(), _pParent, etTableOrView );
2270
2271 Reference<XTablesSupplier> xTabSup(xConnection,UNO_QUERY);
2272 if(xTabSup.is())
2273 {
2274 populateTree( xTabSup->getTables(), _pParent, etTableOrView );

--- 93 unchanged lines hidden (view full) ---

2368 Reference< XNameAccess > xNameAccess(pData->xContainer,UNO_QUERY);
2369 if ( xNameAccess.is() )
2370 pEntryData->xContainer.set(xNameAccess->getByName(aName),UNO_QUERY);
2371 }
2372 catch(const Exception& )
2373 {
2374 DBG_UNHANDLED_EXCEPTION();
2375 }
2376
2376
2377 bSuccess = pEntryData->xContainer.is();
2378 }
2379 else
2380 {
2381 try
2382 {
2383 Reference< XQueryDefinitionsSupplier > xQuerySup;
2384 m_xDatabaseContext->getByName( getDataSourceAcessor( pDataSourceEntry ) ) >>= xQuerySup;

--- 221 unchanged lines hidden (view full) ---

2606 // but first check if it is necessary
2607 // get all old properties
2608 Reference<XPropertySet> xRowSetProps(getRowSet(),UNO_QUERY);
2609 ::rtl::OUString aOldName;
2610 xRowSetProps->getPropertyValue(PROPERTY_COMMAND) >>= aOldName;
2611 sal_Int32 nOldType = 0;
2612 xRowSetProps->getPropertyValue(PROPERTY_COMMAND_TYPE) >>= nOldType;
2613 Reference<XConnection> xOldConnection(xRowSetProps->getPropertyValue(PROPERTY_ACTIVE_CONNECTION),UNO_QUERY);
2377 bSuccess = pEntryData->xContainer.is();
2378 }
2379 else
2380 {
2381 try
2382 {
2383 Reference< XQueryDefinitionsSupplier > xQuerySup;
2384 m_xDatabaseContext->getByName( getDataSourceAcessor( pDataSourceEntry ) ) >>= xQuerySup;

--- 221 unchanged lines hidden (view full) ---

2606 // but first check if it is necessary
2607 // get all old properties
2608 Reference<XPropertySet> xRowSetProps(getRowSet(),UNO_QUERY);
2609 ::rtl::OUString aOldName;
2610 xRowSetProps->getPropertyValue(PROPERTY_COMMAND) >>= aOldName;
2611 sal_Int32 nOldType = 0;
2612 xRowSetProps->getPropertyValue(PROPERTY_COMMAND_TYPE) >>= nOldType;
2613 Reference<XConnection> xOldConnection(xRowSetProps->getPropertyValue(PROPERTY_ACTIVE_CONNECTION),UNO_QUERY);
2614
2614
2615 // the name of the table or query
2616 SvLBoxString* pString = (SvLBoxString*)_pEntry->GetFirstItem(SV_ITEM_ID_BOLDLBSTRING);
2617 OSL_ENSURE(pString,"There must be a string item!");
2618 const ::rtl::OUString sSimpleName = pString->GetText();
2619 ::rtl::OUStringBuffer sNameBuffer(sSimpleName);
2620 if ( etQueryContainer == pContainerData->eType )
2621 {
2622 SvLBoxEntry* pTemp = pContainer;

--- 527 unchanged lines hidden (view full) ---

3150 return xDataSource.get();
3151 }
3152}
3153
3154// -------------------------------------------------------------------------
3155void SbaTableQueryBrowser::impl_initialize()
3156{
3157 ::vos::OGuard aGuard(Application::GetSolarMutex());
2615 // the name of the table or query
2616 SvLBoxString* pString = (SvLBoxString*)_pEntry->GetFirstItem(SV_ITEM_ID_BOLDLBSTRING);
2617 OSL_ENSURE(pString,"There must be a string item!");
2618 const ::rtl::OUString sSimpleName = pString->GetText();
2619 ::rtl::OUStringBuffer sNameBuffer(sSimpleName);
2620 if ( etQueryContainer == pContainerData->eType )
2621 {
2622 SvLBoxEntry* pTemp = pContainer;

--- 527 unchanged lines hidden (view full) ---

3150 return xDataSource.get();
3151 }
3152}
3153
3154// -------------------------------------------------------------------------
3155void SbaTableQueryBrowser::impl_initialize()
3156{
3157 ::vos::OGuard aGuard(Application::GetSolarMutex());
3158 // doin' a lot of VCL stuff here -> lock the SolarMutex
3158 // doing a lot of VCL stuff here -> lock the SolarMutex
3159
3160 // first initialize the parent
3161 SbaXDataBrowserController::impl_initialize();
3162
3163 Reference<XConnection> xForeignConnection;
3164 Reference< XFrame > xFrame;
3165
3166 ::rtl::OUString aTableName, aCatalogName, aSchemaName;

--- 280 unchanged lines hidden (view full) ---

3447{
3448 SvLBoxEntry* pLHS = static_cast<SvLBoxEntry*>(_pSortData->pLeft);
3449 SvLBoxEntry* pRHS = static_cast<SvLBoxEntry*>(_pSortData->pRight);
3450 DBG_ASSERT(pLHS && pRHS, "SbaTableQueryBrowser::OnTreeEntryCompare: invalid tree entries!");
3451 // we want the table entry and the end so we have to do a check
3452
3453 if (isContainer(pRHS))
3454 {
3159
3160 // first initialize the parent
3161 SbaXDataBrowserController::impl_initialize();
3162
3163 Reference<XConnection> xForeignConnection;
3164 Reference< XFrame > xFrame;
3165
3166 ::rtl::OUString aTableName, aCatalogName, aSchemaName;

--- 280 unchanged lines hidden (view full) ---

3447{
3448 SvLBoxEntry* pLHS = static_cast<SvLBoxEntry*>(_pSortData->pLeft);
3449 SvLBoxEntry* pRHS = static_cast<SvLBoxEntry*>(_pSortData->pRight);
3450 DBG_ASSERT(pLHS && pRHS, "SbaTableQueryBrowser::OnTreeEntryCompare: invalid tree entries!");
3451 // we want the table entry and the end so we have to do a check
3452
3453 if (isContainer(pRHS))
3454 {
3455 // don't use getEntryType (directly or indirecly) for the LHS:
3455 // don't use getEntryType (directly or indirectly) for the LHS:
3456 // LHS is currently being inserted, so it is not "completely valid" at the moment
3457
3458 const EntryType eRight = getEntryType(pRHS);
3459 if (etTableContainer == eRight)
3460 // every other container should be placed _before_ the bookmark container
3461 return -1;
3462
3463 const String sLeft = m_pTreeView->getListBox().GetEntryText(pLHS);

--- 32 unchanged lines hidden (view full) ---

3496 {
3497 nCompareResult = m_xCollator->compareString(sLeftText, sRightText);
3498 }
3499 catch(Exception&)
3500 {
3501 }
3502 }
3503 else
3456 // LHS is currently being inserted, so it is not "completely valid" at the moment
3457
3458 const EntryType eRight = getEntryType(pRHS);
3459 if (etTableContainer == eRight)
3460 // every other container should be placed _before_ the bookmark container
3461 return -1;
3462
3463 const String sLeft = m_pTreeView->getListBox().GetEntryText(pLHS);

--- 32 unchanged lines hidden (view full) ---

3496 {
3497 nCompareResult = m_xCollator->compareString(sLeftText, sRightText);
3498 }
3499 catch(Exception&)
3500 {
3501 }
3502 }
3503 else
3504 // default behaviour if we do not have a collator -> do the simple string compare
3504 // default behavior if we do not have a collator -> do the simple string compare
3505 nCompareResult = sLeftText.CompareTo(sRightText);
3506
3507 return nCompareResult;
3508}
3509
3510// -----------------------------------------------------------------------------
3511void SbaTableQueryBrowser::implAdministrate( SvLBoxEntry* _pApplyTo )
3512{

--- 130 unchanged lines hidden (view full) ---

3643// -----------------------------------------------------------------------------
3644sal_Bool SbaTableQueryBrowser::implGetQuerySignature( ::rtl::OUString& _rCommand, sal_Bool& _bEscapeProcessing )
3645{
3646 _rCommand = ::rtl::OUString();
3647 _bEscapeProcessing = sal_False;
3648
3649 try
3650 {
3505 nCompareResult = sLeftText.CompareTo(sRightText);
3506
3507 return nCompareResult;
3508}
3509
3510// -----------------------------------------------------------------------------
3511void SbaTableQueryBrowser::implAdministrate( SvLBoxEntry* _pApplyTo )
3512{

--- 130 unchanged lines hidden (view full) ---

3643// -----------------------------------------------------------------------------
3644sal_Bool SbaTableQueryBrowser::implGetQuerySignature( ::rtl::OUString& _rCommand, sal_Bool& _bEscapeProcessing )
3645{
3646 _rCommand = ::rtl::OUString();
3647 _bEscapeProcessing = sal_False;
3648
3649 try
3650 {
3651 // ontain the dss (data source signature) of the form
3651 // contain the dss (data source signature) of the form
3652 ::rtl::OUString sDataSourceName;
3653 ::rtl::OUString sCommand;
3654 sal_Int32 nCommandType = CommandType::COMMAND;
3655 Reference< XPropertySet > xRowsetProps( getRowSet(), UNO_QUERY );
3656 ODataAccessDescriptor aDesc( xRowsetProps );
3657 sDataSourceName = aDesc.getDataSource();
3658 aDesc[ daCommand ] >>= sCommand;
3659 aDesc[ daCommandType ] >>= nCommandType;

--- 265 unchanged lines hidden (view full) ---

3925 implAddDatasource( _Event.Name, SharedConnection() );
3926}
3927
3928
3929// .........................................................................
3930} // namespace dbaui
3931// .........................................................................
3932
3652 ::rtl::OUString sDataSourceName;
3653 ::rtl::OUString sCommand;
3654 sal_Int32 nCommandType = CommandType::COMMAND;
3655 Reference< XPropertySet > xRowsetProps( getRowSet(), UNO_QUERY );
3656 ODataAccessDescriptor aDesc( xRowsetProps );
3657 sDataSourceName = aDesc.getDataSource();
3658 aDesc[ daCommand ] >>= sCommand;
3659 aDesc[ daCommandType ] >>= nCommandType;

--- 265 unchanged lines hidden (view full) ---

3925 implAddDatasource( _Event.Name, SharedConnection() );
3926}
3927
3928
3929// .........................................................................
3930} // namespace dbaui
3931// .........................................................................
3932
3933
3933/* vim: set noet sw=4 ts=4: */