Files
libreoffice/dbaccess/source/core/dataaccess/datasource.cxx

1342 lines
53 KiB
C++
Raw Normal View History

2000-09-18 23:16:46 +00:00
/*************************************************************************
*
* $RCSfile: datasource.cxx,v $
*
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
* $Revision: 1.49 $
2000-09-18 23:16:46 +00:00
*
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
* last change: $Author: hr $ $Date: 2004-08-02 15:09:24 $
2000-09-18 23:16:46 +00:00
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
*
* - GNU Lesser General Public License Version 2.1
* - Sun Industry Standards Source License Version 1.1
*
* Sun Microsystems Inc., October, 2000
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2000 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
*
*
* Sun Industry Standards Source License Version 1.1
* =================================================
* The contents of this file are subject to the Sun Industry Standards
* Source License Version 1.1 (the "License"); You may not use this file
* except in compliance with the License. You may obtain a copy of the
* License at http://www.openoffice.org/license.html.
*
* Software provided under this License is provided on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
* See the License for the specific provisions governing your rights and
* obligations concerning the Software.
*
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
*
* Copyright: 2000 by Sun Microsystems, Inc.
*
* All Rights Reserved.
*
* Contributor(s): _______________________________________
*
*
************************************************************************/
#ifndef _DBA_COREDATAACCESS_DATASOURCE_HXX_
#include "datasource.hxx"
#endif
#ifndef _DBA_CORE_USERINFORMATION_HXX_
#include "userinformation.hxx"
#endif
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
#ifndef _DBA_COREDATAACCESS_COMMANDCONTAINER_HXX_
#include "commandcontainer.hxx"
#endif
2000-09-18 23:16:46 +00:00
#ifndef _TOOLS_DEBUG_HXX
#include <tools/debug.hxx>
#endif
#ifndef _CPPUHELPER_TYPEPROVIDER_HXX_
#include <cppuhelper/typeprovider.hxx>
#endif
#ifndef _COMPHELPER_SEQSTREAM_HXX
#include <comphelper/seqstream.hxx>
#endif
2000-10-25 06:42:28 +00:00
#ifndef DBACCESS_SHARED_DBASTRINGS_HRC
#include "dbastrings.hrc"
2000-09-18 23:16:46 +00:00
#endif
#ifndef _DBA_CORE_RESOURCE_HXX_
#include "core_resource.hxx"
#endif
#ifndef _DBA_CORE_RESOURCE_HRC_
#include "core_resource.hrc"
#endif
2000-10-11 10:21:40 +00:00
#ifndef _COMPHELPER_SEQUENCE_HXX_
#include <comphelper/sequence.hxx>
2000-09-18 23:16:46 +00:00
#endif
2000-10-11 10:21:40 +00:00
#ifndef _COMPHELPER_PROPERTY_HXX_
#include <comphelper/property.hxx>
2000-09-18 23:16:46 +00:00
#endif
#ifndef _COMPHELPER_EXTRACT_HXX_
#include <comphelper/extract.hxx>
2000-09-18 23:16:46 +00:00
#endif
#ifndef _COM_SUN_STAR_SDBC_XDRIVERACCESS_HPP_
#include <com/sun/star/sdbc/XDriverAccess.hpp>
#endif
2000-09-18 23:16:46 +00:00
#ifndef _COM_SUN_STAR_LANG_DISPOSEDEXCEPTION_HPP_
#include <com/sun/star/lang/DisposedException.hpp>
#endif
#ifndef _COM_SUN_STAR_SDBC_XDRIVERMANAGER_HPP_
#include <com/sun/star/sdbc/XDriverManager.hpp>
#endif
2000-12-12 11:20:31 +00:00
#ifndef _COM_SUN_STAR_SDBCX_XTABLESSUPPLIER_HPP_
#include <com/sun/star/sdbcx/XTablesSupplier.hpp>
#endif
2000-11-08 15:05:02 +00:00
#ifndef _COM_SUN_STAR_UCB_XINTERACTIONSUPPLYAUTHENTICATION_HPP_
#include <com/sun/star/ucb/XInteractionSupplyAuthentication.hpp>
#endif
#ifndef _COM_SUN_STAR_UCB_AUTHENTICATIONREQUEST_HPP_
#include <com/sun/star/ucb/AuthenticationRequest.hpp>
#endif
2002-08-12 07:54:24 +00:00
#ifndef _COM_SUN_STAR_REFLECTION_XPROXYFACTORY_HPP_
#include <com/sun/star/reflection/XProxyFactory.hpp>
#endif
#ifndef _TYPELIB_TYPEDESCRIPTION_HXX_
#include <typelib/typedescription.hxx>
#endif
#ifndef _DBHELPER_DBEXCEPTION_HXX_
#include <connectivity/dbexception.hxx>
#endif
2000-11-08 15:05:02 +00:00
#ifndef _COMPHELPER_INTERACTION_HXX_
#include <comphelper/interaction.hxx>
#endif
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
#ifndef DBA_COREDATAACCESS_COMMITLISTENER_HXX
#include "commitlistener.hxx"
#endif
#ifndef _DBA_CORE_CONNECTION_HXX_
#include "connection.hxx"
2000-09-18 23:16:46 +00:00
#endif
#ifndef _COMPHELPER_GUARDING_HXX_
#include <comphelper/guarding.hxx>
#endif
2002-08-12 07:54:24 +00:00
#ifndef DBA_CORE_SHARED_CONNECTION_HXX
#include "SharedConnection.hxx"
#endif
#ifndef _RTL_DIGEST_H_
#include <rtl/digest.h>
#endif
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
#ifndef _COM_SUN_STAR_EMBED_XTRANSACTEDOBJECT_HPP_
#include <com/sun/star/embed/XTransactedObject.hpp>
#endif
2001-11-01 15:45:25 +00:00
#include <algorithm>
2000-09-18 23:16:46 +00:00
using namespace ::com::sun::star::sdbc;
2000-12-12 11:20:31 +00:00
using namespace ::com::sun::star::sdbcx;
2000-09-18 23:16:46 +00:00
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
using namespace ::com::sun::star::embed;
2000-09-18 23:16:46 +00:00
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::util;
using namespace ::com::sun::star::io;
2000-11-08 15:05:02 +00:00
using namespace ::com::sun::star::task;
using namespace ::com::sun::star::ucb;
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
using namespace ::com::sun::star::frame;
2002-08-12 07:54:24 +00:00
using namespace ::com::sun::star::reflection;
2000-09-18 23:16:46 +00:00
using namespace ::cppu;
using namespace ::osl;
using namespace ::vos;
using namespace ::dbtools;
2000-11-08 15:05:02 +00:00
using namespace ::comphelper;
2000-09-18 23:16:46 +00:00
//........................................................................
namespace dbaccess
{
//........................................................................
2000-09-18 23:16:46 +00:00
2000-11-08 15:05:02 +00:00
//============================================================
//= OAuthenticationContinuation
//============================================================
class OAuthenticationContinuation : public OInteraction< XInteractionSupplyAuthentication >
{
sal_Bool m_bDatasourceReadonly : 1; // if sal_True, the data source using this continuation
// is readonly, which means that no user can be set and
// the password can't be remembered
sal_Bool m_bRemberPassword : 1; // remember the password for this session ?
::rtl::OUString m_sUser; // the user
::rtl::OUString m_sPassword; // the user's password
public:
OAuthenticationContinuation(sal_Bool _bReadOnlyDS = sal_False);
2000-11-08 15:05:02 +00:00
virtual sal_Bool SAL_CALL canSetRealm( ) throw(RuntimeException);
virtual void SAL_CALL setRealm( const ::rtl::OUString& Realm ) throw(RuntimeException);
virtual sal_Bool SAL_CALL canSetUserName( ) throw(RuntimeException);
virtual void SAL_CALL setUserName( const ::rtl::OUString& UserName ) throw(RuntimeException);
virtual sal_Bool SAL_CALL canSetPassword( ) throw(RuntimeException);
virtual void SAL_CALL setPassword( const ::rtl::OUString& Password ) throw(RuntimeException);
virtual Sequence< RememberAuthentication > SAL_CALL getRememberPasswordModes( RememberAuthentication& Default ) throw(RuntimeException);
virtual void SAL_CALL setRememberPassword( RememberAuthentication Remember ) throw(RuntimeException);
virtual sal_Bool SAL_CALL canSetAccount( ) throw(RuntimeException);
virtual void SAL_CALL setAccount( const ::rtl::OUString& Account ) throw(RuntimeException);
virtual Sequence< RememberAuthentication > SAL_CALL getRememberAccountModes( RememberAuthentication& Default ) throw(RuntimeException);
virtual void SAL_CALL setRememberAccount( RememberAuthentication Remember ) throw(RuntimeException);
::rtl::OUString getUser() const { return m_sUser; }
::rtl::OUString getPassword() const { return m_sPassword; }
sal_Bool getRememberPassword() const { return m_bRemberPassword; }
};
//--------------------------------------------------------------------------
OAuthenticationContinuation::OAuthenticationContinuation(sal_Bool _bReadOnlyDS)
:m_bDatasourceReadonly(_bReadOnlyDS)
,m_bRemberPassword(sal_True) // TODO: a meaningfull default
{
}
2000-11-08 15:05:02 +00:00
//--------------------------------------------------------------------------
sal_Bool SAL_CALL OAuthenticationContinuation::canSetRealm( ) throw(RuntimeException)
{
return sal_False;
}
//--------------------------------------------------------------------------
void SAL_CALL OAuthenticationContinuation::setRealm( const ::rtl::OUString& Realm ) throw(RuntimeException)
{
DBG_ERROR("OAuthenticationContinuation::setRealm: not supported!");
}
//--------------------------------------------------------------------------
sal_Bool SAL_CALL OAuthenticationContinuation::canSetUserName( ) throw(RuntimeException)
{
return !m_bDatasourceReadonly;
}
//--------------------------------------------------------------------------
void SAL_CALL OAuthenticationContinuation::setUserName( const ::rtl::OUString& _rUser ) throw(RuntimeException)
{
m_sUser = _rUser;
}
//--------------------------------------------------------------------------
sal_Bool SAL_CALL OAuthenticationContinuation::canSetPassword( ) throw(RuntimeException)
{
return sal_True;
}
//--------------------------------------------------------------------------
void SAL_CALL OAuthenticationContinuation::setPassword( const ::rtl::OUString& _rPassword ) throw(RuntimeException)
{
m_sPassword = _rPassword;
}
//--------------------------------------------------------------------------
Sequence< RememberAuthentication > SAL_CALL OAuthenticationContinuation::getRememberPasswordModes( RememberAuthentication& _reDefault ) throw(RuntimeException)
2000-11-08 15:05:02 +00:00
{
Sequence< RememberAuthentication > aReturn(1);
_reDefault = aReturn[0] = (m_bDatasourceReadonly ? RememberAuthentication_NO : RememberAuthentication_SESSION);
return aReturn;
2000-11-08 15:05:02 +00:00
}
//--------------------------------------------------------------------------
void SAL_CALL OAuthenticationContinuation::setRememberPassword( RememberAuthentication _eRemember ) throw(RuntimeException)
{
m_bRemberPassword = (RememberAuthentication_NO != _eRemember);
}
//--------------------------------------------------------------------------
sal_Bool SAL_CALL OAuthenticationContinuation::canSetAccount( ) throw(RuntimeException)
{
return sal_False;
}
//--------------------------------------------------------------------------
void SAL_CALL OAuthenticationContinuation::setAccount( const ::rtl::OUString& ) throw(RuntimeException)
{
DBG_ERROR("OAuthenticationContinuation::setAccount: not supported!");
}
//--------------------------------------------------------------------------
Sequence< RememberAuthentication > SAL_CALL OAuthenticationContinuation::getRememberAccountModes( RememberAuthentication& _reDefault ) throw(RuntimeException)
2000-11-08 15:05:02 +00:00
{
Sequence < RememberAuthentication > aReturn(1);
aReturn[0] = RememberAuthentication_NO;
_reDefault = RememberAuthentication_NO;
2000-11-08 15:05:02 +00:00
return aReturn;
}
//--------------------------------------------------------------------------
void SAL_CALL OAuthenticationContinuation::setRememberAccount( RememberAuthentication Remember ) throw(RuntimeException)
{
DBG_ERROR("OAuthenticationContinuation::setRememberAccount: not supported!");
}
2002-08-12 07:54:24 +00:00
/** The class OSharedConnectionManager implements a structure to share connections.
It owns the master connections which will be disposed when the last connection proxy is gone.
*/
2002-08-12 08:21:59 +00:00
typedef ::cppu::WeakImplHelper1< XEventListener > OConnectionHelper_BASE;
// need to hold the digest
struct TDigestHolder
{
sal_uInt8 m_pBuffer[RTL_DIGEST_LENGTH_SHA1];
TDigestHolder()
{
m_pBuffer[0] = 0;
}
};
2002-08-12 08:21:59 +00:00
class OSharedConnectionManager : public OConnectionHelper_BASE
2002-08-12 07:54:24 +00:00
{
// contains the currently used master connections
typedef struct
{
Reference< XConnection > xMasterConnection;
oslInterlockedCount nALiveCount;
} TConnectionHolder;
// the less-compare functor, used for the stl::map
struct TDigestLess : public ::std::binary_function< TDigestHolder, TDigestHolder, bool>
{
bool operator() (const TDigestHolder& x, const TDigestHolder& y) const
{
sal_uInt32 i;
for(i=0;i < RTL_DIGEST_LENGTH_SHA1 && (x.m_pBuffer[i] >= y.m_pBuffer[i]); ++i)
;
return i < RTL_DIGEST_LENGTH_SHA1;
}
};
typedef ::std::map< TDigestHolder,TConnectionHolder,TDigestLess> TConnectionMap; // holds the master connections
typedef ::std::map< Reference< XConnection >,TConnectionMap::iterator> TSharedConnectionMap;// holds the shared connections
::osl::Mutex m_aMutex;
TConnectionMap m_aConnections; // remeber the master connection in conjunction with the digest
TSharedConnectionMap m_aSharedConnection; // the shared connections with conjunction with an iterator into the connections map
Reference< XProxyFactory > m_xProxyFactory;
protected:
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
virtual ~OSharedConnectionManager();
2002-08-12 07:54:24 +00:00
public:
OSharedConnectionManager(const Reference< XMultiServiceFactory >& _rxServiceFactory);
virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw(::com::sun::star::uno::RuntimeException);
Reference<XConnection> getConnection( const rtl::OUString& url,
const rtl::OUString& user,
const rtl::OUString& password,
Sequence< PropertyValue >& _aInfo,
ODatabaseSource* _pDataSource);
void addEventListener(const Reference<XConnection>& _rxConnection,TConnectionMap::iterator& _rIter);
};
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
DBG_NAME(OSharedConnectionManager)
2002-08-12 07:54:24 +00:00
OSharedConnectionManager::OSharedConnectionManager(const Reference< XMultiServiceFactory >& _rxServiceFactory)
{
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
DBG_CTOR(OSharedConnectionManager,NULL);
m_xProxyFactory.set(_rxServiceFactory->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.reflection.ProxyFactory"))),UNO_QUERY);
}
OSharedConnectionManager::~OSharedConnectionManager()
{
DBG_DTOR(OSharedConnectionManager,NULL);
2002-08-12 07:54:24 +00:00
}
void SAL_CALL OSharedConnectionManager::disposing( const ::com::sun::star::lang::EventObject& Source ) throw(::com::sun::star::uno::RuntimeException)
{
MutexGuard aGuard(m_aMutex);
Reference<XConnection> xConnection(Source.Source,UNO_QUERY);
TSharedConnectionMap::iterator aFind = m_aSharedConnection.find(xConnection);
if ( m_aSharedConnection.end() != aFind )
{
osl_decrementInterlockedCount(&aFind->second->second.nALiveCount);
if ( !aFind->second->second.nALiveCount )
{
::comphelper::disposeComponent(aFind->second->second.xMasterConnection);
m_aConnections.erase(aFind->second);
m_aSharedConnection.erase(aFind);
}
}
}
Reference<XConnection> OSharedConnectionManager::getConnection( const rtl::OUString& url,
const rtl::OUString& user,
const rtl::OUString& password,
Sequence< PropertyValue >& _aInfo,
ODatabaseSource* _pDataSource)
{
MutexGuard aGuard(m_aMutex);
TConnectionMap::key_type nId;
Sequence< PropertyValue > aInfoCopy(_aInfo);
sal_Int32 nPos = aInfoCopy.getLength();
aInfoCopy.realloc( nPos + 2 );
aInfoCopy[nPos].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TableFilter"));
aInfoCopy[nPos++].Value <<= _pDataSource->m_aTableFilter;
aInfoCopy[nPos].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TableTypeFilter"));
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
aInfoCopy[nPos++].Value <<= _pDataSource->m_aTableTypeFilter; // #22377# OJ
::rtl::OUString sUser = user;
::rtl::OUString sPassword = password;
if ((0 == sUser.getLength()) && (0 == sPassword.getLength()) && (0 != _pDataSource->m_sUser.getLength()))
{ // ease the usage of this method. data source which are intended to have a user automatically
// fill in the user/password combination if the caller of this method does not specify otherwise
// 86951 - 05/08/2001 - frank.schoenheit@germany.sun.com
sUser = _pDataSource->m_sUser;
if (0 != _pDataSource->m_aPassword.getLength())
sPassword = _pDataSource->m_aPassword;
}
::connectivity::OConnectionWrapper::createUniqueId(url,aInfoCopy,nId.m_pBuffer,sUser,sPassword);
2002-08-12 07:54:24 +00:00
TConnectionMap::iterator aIter = m_aConnections.find(nId);
if ( m_aConnections.end() == aIter )
{
TConnectionHolder aHolder;
aHolder.nALiveCount = 0; // will be incremented by addListener
aHolder.xMasterConnection = _pDataSource->buildIsolatedConnection(user,password);
aIter = m_aConnections.insert(TConnectionMap::value_type(nId,aHolder)).first;
}
Reference<XConnection> xRet;
if ( aIter->second.xMasterConnection.is() )
{
Reference< XAggregation > xConProxy = m_xProxyFactory->createProxy(aIter->second.xMasterConnection.get());
xRet = new OSharedConnection(xConProxy);
m_aSharedConnection.insert(TSharedConnectionMap::value_type(xRet,aIter));
addEventListener(xRet,aIter);
}
return xRet;
}
void OSharedConnectionManager::addEventListener(const Reference<XConnection>& _rxConnection,TConnectionMap::iterator& _rIter)
{
Reference<XComponent> xComp(_rxConnection,UNO_QUERY);
xComp->addEventListener(this);
OSL_ENSURE( m_aConnections.end() != _rIter , "Iterator is end!");
osl_incrementInterlockedCount(&_rIter->second.nALiveCount);
}
2002-08-12 08:21:59 +00:00
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
namespace
{
Sequence< PropertyValue > lcl_filterDriverProperties(const Reference< XDriver >& _xDriver,const ::rtl::OUString& _sUrl,const Sequence< PropertyValue >& _aInfo)
{
if ( _xDriver.is() )
{
Sequence< DriverPropertyInfo > aDriverInfo(_xDriver->getPropertyInfo(_sUrl,_aInfo));
const char* pProperties[] = {
"JavaDriverClass","Extension"
,"CharSet","HeaderLine"
,"FieldDelimiter","StringDelimiter"
,"DecimalDelimiter","ThousandDelimiter"
,"ShowDeleted","IgnoreDriverPrivileges"
,"NoNameLengthLimit","SystemDriverSettings"
,"EnableSQL92Check","AutoIncrementCreation"
,"AutoRetrievingStatement","IsAutoRetrievingEnabled"
,"HostName","PortNumber"
,"AppendTableAliasName","IgnoreDriverPrivileges"
,"ParameterNameSubstitution","BooleanComparisonMode"
,"ShutdownDatabase","DataCacheSizeIncrement"
,"DataCacheSize","ControlUser"
,"ControlPassword","UseCatalog"
,"BaseDN","MaxRowCount","SuppressVersionColumns"
,"FixedLength","AddIndexAppendix"
,"UseSchemaInSelect","UseCatalogInSelect"
};
sal_Int32 nCount = sizeof(pProperties) / sizeof(pProperties[0]);
const PropertyValue* pSupported = _aInfo.getConstArray();
const PropertyValue* pEnd = pSupported + _aInfo.getLength();
::std::vector< PropertyValue > aRet;
for ( ; pSupported != pEnd ; ++pSupported)
{
sal_Bool bFound = sal_False;
sal_Int32 i;
for (i=0; i < nCount; ++i)
{
if ( !pSupported->Name.compareToAscii(pProperties[i]) )
{
const DriverPropertyInfo* pDriverInfoIter = aDriverInfo.getConstArray();
const DriverPropertyInfo* pDriverInfoEnd = pDriverInfoIter + aDriverInfo.getLength();
for ( ; pDriverInfoIter != pDriverInfoEnd ; ++pDriverInfoIter)
{
if ( !pDriverInfoIter->Name.compareToAscii(pProperties[i]) )
{
bFound = sal_True;
break;
}
}
break;
}
}
if ( bFound || i == nCount)
{
aRet.push_back( *pSupported );
}
}
return Sequence< PropertyValue >(aRet.begin(),aRet.size());
}
return Sequence< PropertyValue >();
}
}
//============================================================
//= ODatabaseContext
//============================================================
2000-10-24 14:00:08 +00:00
DBG_NAME(ODatabaseSource)
2000-09-18 23:16:46 +00:00
//--------------------------------------------------------------------------
extern "C" void SAL_CALL createRegistryInfo_ODatabaseSource()
{
static OMultiInstanceAutoRegistration< ODatabaseSource > aAutoRegistration;
}
//--------------------------------------------------------------------------
Reference< XInterface > ODatabaseSource_CreateInstance(const Reference< XMultiServiceFactory >& _rxFactory)
{
return *(new ODatabaseSource(_rxFactory));
}
//--------------------------------------------------------------------------
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
ODatabaseSource::ODatabaseSource(const Reference< XMultiServiceFactory >& _rxFactory,ODatabaseContext* _pDBContext)
2000-09-18 23:16:46 +00:00
:OSubComponent(m_aMutex, Reference< XInterface >())
,OPropertySetHelper(OComponentHelper::rBHelper)
,m_nLoginTimeout(0)
,m_xServiceFactory(_rxFactory)
,m_bReadOnly(sal_False) // we're created as service and have to allow the setting of properties
,m_bPasswordRequired(sal_False)
,m_bSuppressVersionColumns(sal_True)
,m_aBookmarks(*this, m_aMutex)
2002-08-12 07:54:24 +00:00
,m_pSharedConnectionManager(NULL)
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
,m_bModified(sal_False)
,m_bDocumentReadOnly(sal_False)
,m_aModifyListeners(m_aMutex)
,m_aEventListeners(m_aMutex)
,m_aCloseListener(m_aMutex)
,m_aFlushListeners(m_aMutex)
,m_pDBContext(_pDBContext)
,m_nControllerLockCount(0)
2000-09-18 23:16:46 +00:00
{
2000-10-11 10:21:40 +00:00
// some kind of default
2001-07-26 08:15:31 +00:00
DBG_CTOR(ODatabaseSource,NULL);
2000-10-11 10:21:40 +00:00
m_sConnectURL = ::rtl::OUString::createFromAscii("jdbc:");
m_aTableFilter.realloc(1);
m_aTableFilter[0] = ::rtl::OUString::createFromAscii("%");
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
lateInit();
2000-09-18 23:16:46 +00:00
}
//--------------------------------------------------------------------------
ODatabaseSource::ODatabaseSource(
OWeakObject& _rParent,
const ::rtl::OUString& _rRegistrationName,
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
const Reference< XMultiServiceFactory >& _rxFactory,
ODatabaseContext* _pDBContext
)
2000-09-18 23:16:46 +00:00
:OSubComponent(m_aMutex, _rParent)
,OPropertySetHelper(OComponentHelper::rBHelper)
,m_nLoginTimeout(0)
,m_sName(_rRegistrationName)
,m_xServiceFactory(_rxFactory)
2000-10-09 11:34:52 +00:00
,m_bReadOnly(sal_True) // assume readonly for the moment, adjusted below
2000-09-18 23:16:46 +00:00
,m_bPasswordRequired(sal_False)
,m_bSuppressVersionColumns(sal_True)
,m_aBookmarks(*this, m_aMutex)
2002-08-12 07:54:24 +00:00
,m_pSharedConnectionManager(NULL)
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
,m_bModified(sal_False)
,m_bDocumentReadOnly(sal_False)
,m_aModifyListeners(m_aMutex)
,m_aEventListeners(m_aMutex)
,m_aCloseListener(m_aMutex)
,m_aFlushListeners(m_aMutex)
,m_pDBContext(_pDBContext)
,m_nControllerLockCount(0)
2000-09-18 23:16:46 +00:00
{
DBG_CTOR(ODatabaseSource,NULL);
2000-10-09 11:34:52 +00:00
// adjust our readonly flag
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
lateInit();
2000-09-18 23:16:46 +00:00
}
//--------------------------------------------------------------------------
ODatabaseSource::~ODatabaseSource()
{
DBG_DTOR(ODatabaseSource,NULL);
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
if ( !OComponentHelper::rBHelper.bInDispose && !OComponentHelper::rBHelper.bDisposed )
{
acquire();
dispose();
}
}
// -----------------------------------------------------------------------------
void ODatabaseSource::lateInit()
{
m_bReadOnly = sal_False;
m_aContainer.resize(4);
m_pChildCommitListen = NULL;
}
// -----------------------------------------------------------------------------
void ODatabaseSource::setMeAsParent(const Reference< XNameAccess >& _xName)
{
Reference<XChild> xChild(_xName,UNO_QUERY);
xChild->setParent(*this);
2000-09-18 23:16:46 +00:00
}
// com::sun::star::lang::XTypeProvider
//--------------------------------------------------------------------------
Sequence< Type > ODatabaseSource::getTypes() throw (RuntimeException)
{
2001-01-23 07:32:02 +00:00
OTypeCollection aPropertyHelperTypes( ::getCppuType( (const Reference< XFastPropertySet > *)0 ),
::getCppuType( (const Reference< XPropertySet > *)0 ),
::getCppuType( (const Reference< XMultiPropertySet > *)0 ));
return ::comphelper::concatSequences(
::comphelper::concatSequences(
OSubComponent::getTypes(),
aPropertyHelperTypes.getTypes()
),
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
ODatabaseSource_Base::getTypes(), ODatabaseSource_OfficeDocument::getTypes()
2001-01-23 07:32:02 +00:00
);
2000-09-18 23:16:46 +00:00
}
//--------------------------------------------------------------------------
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
Sequence< sal_Int8 > ODatabaseSource::getImplementationId() throw (RuntimeException)
2000-09-18 23:16:46 +00:00
{
static OImplementationId * pId = 0;
if (! pId)
{
MutexGuard aGuard( Mutex::getGlobalMutex() );
if (! pId)
{
static OImplementationId aId;
pId = &aId;
}
}
return pId->getImplementationId();
}
// com::sun::star::uno::XInterface
//--------------------------------------------------------------------------
Any ODatabaseSource::queryInterface( const Type & rType ) throw (RuntimeException)
{
Any aIface = OSubComponent::queryInterface( rType );
if (!aIface.hasValue())
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
{
2000-09-18 23:16:46 +00:00
aIface = ODatabaseSource_Base::queryInterface( rType );
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
if ( !aIface.hasValue() )
{
aIface = ODatabaseSource_OfficeDocument::queryInterface( rType );
if (!aIface.hasValue())
aIface = ::cppu::queryInterface(
rType,
static_cast< XPropertySet* >( this ),
static_cast< XFastPropertySet* >( this ),
static_cast< XMultiPropertySet* >( this ));
}
}
2000-09-18 23:16:46 +00:00
return aIface;
}
//--------------------------------------------------------------------------
2001-11-01 15:29:21 +00:00
void ODatabaseSource::acquire() throw ()
2000-09-18 23:16:46 +00:00
{
OSubComponent::acquire();
}
//--------------------------------------------------------------------------
2001-11-01 15:29:21 +00:00
void ODatabaseSource::release() throw ()
2000-09-18 23:16:46 +00:00
{
OSubComponent::release();
}
2000-11-14 12:32:59 +00:00
// -----------------------------------------------------------------------------
2002-08-12 07:54:24 +00:00
void SAL_CALL ODatabaseSource::disposing( const ::com::sun::star::lang::EventObject& Source ) throw(RuntimeException)
2000-11-14 12:32:59 +00:00
{
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
OWeakConnectionArray::iterator aEnd = m_aConnections.end();
for (OWeakConnectionArray::iterator i = m_aConnections.begin(); aEnd != i; ++i)
2000-11-14 12:32:59 +00:00
{
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
if ( Source.Source == i->get() )
2000-11-14 12:32:59 +00:00
{
*i = OWeakConnection();
}
}
2000-09-18 23:16:46 +00:00
2000-11-14 12:32:59 +00:00
}
2000-09-18 23:16:46 +00:00
// XServiceInfo
//------------------------------------------------------------------------------
rtl::OUString ODatabaseSource::getImplementationName( ) throw(RuntimeException)
{
return getImplementationName_Static();
}
//------------------------------------------------------------------------------
rtl::OUString ODatabaseSource::getImplementationName_Static( ) throw(RuntimeException)
{
2001-01-05 09:49:38 +00:00
return rtl::OUString::createFromAscii("com.sun.star.comp.dba.ODatabaseSource");
2000-09-18 23:16:46 +00:00
}
//------------------------------------------------------------------------------
Sequence< ::rtl::OUString > ODatabaseSource::getSupportedServiceNames( ) throw (RuntimeException)
{
return getSupportedServiceNames_Static();
}
//------------------------------------------------------------------------------
Reference< XInterface > ODatabaseSource::Create(const Reference< XMultiServiceFactory >& _rxFactory)
{
return ODatabaseSource_CreateInstance(_rxFactory);
}
//------------------------------------------------------------------------------
Sequence< ::rtl::OUString > ODatabaseSource::getSupportedServiceNames_Static( ) throw (RuntimeException)
{
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
Sequence< ::rtl::OUString > aSNS( 3 );
2000-09-18 23:16:46 +00:00
aSNS[0] = SERVICE_SDB_DATASOURCE;
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
aSNS[1] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.sdb.DatabaseDocument"));
aSNS[2] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.document.OfficeDocument"));
2000-09-18 23:16:46 +00:00
return aSNS;
}
//------------------------------------------------------------------------------
sal_Bool ODatabaseSource::supportsService( const ::rtl::OUString& _rServiceName ) throw (RuntimeException)
{
2000-10-11 10:21:40 +00:00
return ::comphelper::findValue(getSupportedServiceNames(), _rServiceName, sal_True).getLength() != 0;
2000-09-18 23:16:46 +00:00
}
2002-08-12 07:54:24 +00:00
// -----------------------------------------------------------------------------
void ODatabaseSource::clearConnections()
{
Reference< XConnection > xConn;
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
for (OWeakConnectionArray::iterator i = m_aConnections.begin(); m_aConnections.end() != i; ++i)
2002-08-12 07:54:24 +00:00
{
xConn = *i;
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
if ( xConn.is() )
{
try
{
xConn->close();
}
catch(Exception)
{
OSL_ENSURE(0,"Exception catched while closing a connection!");
}
}
2002-08-12 07:54:24 +00:00
}
m_aConnections.clear();
2000-09-18 23:16:46 +00:00
2002-08-12 07:54:24 +00:00
m_pSharedConnectionManager = NULL;
m_xSharedConnectionManager = NULL;
}
2000-09-18 23:16:46 +00:00
// OComponentHelper
//------------------------------------------------------------------------------
void ODatabaseSource::disposing()
{
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
OSubComponent::disposing();
2000-09-18 23:16:46 +00:00
OPropertySetHelper::disposing();
MutexGuard aGuard(m_aMutex);
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
EventObject aDisposeEvent(static_cast<XWeak*>(this));
m_aModifyListeners.disposeAndClear( aDisposeEvent );
m_aEventListeners.disposeAndClear( aDisposeEvent );
m_aCloseListener.disposeAndClear( aDisposeEvent );
::std::vector<TContentPtr>::iterator aIter = m_aContainer.begin();
::std::vector<TContentPtr>::iterator aEnd = m_aContainer.end();
for (;aIter != aEnd ; ++aIter)
{
if ( aIter->get() )
(*aIter)->m_pDataSource = NULL;
}
m_aContainer.clear();
2000-09-18 23:16:46 +00:00
2002-08-12 07:54:24 +00:00
clearConnections();
2001-07-26 08:15:31 +00:00
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
if ( m_pChildCommitListen )
{
m_pChildCommitListen->release();
m_pChildCommitListen = NULL;
}
2000-09-18 23:16:46 +00:00
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
disposeControllerFrames();
m_xCurrentController = NULL;
m_xNumberFormatsSupplier = NULL;
try
{
TStorages::iterator aFind = m_aStorages.find(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("database")));
if ( aFind != m_aStorages.end() )
{
Reference<XTransactedObject> xTrans(aFind->second,UNO_QUERY);
if ( xTrans.is() )
xTrans->commit();
}
}
catch(Exception&)
{
OSL_ENSURE(0,"Exception Caught: Could not store embedded database!");
}
try
{
TStorages::iterator aIter = m_aStorages.begin();
TStorages::iterator aEnd = m_aStorages.end();
for (; aIter != aEnd ; ++aIter)
{
::comphelper::disposeComponent(aIter->second);
}
m_aStorages.clear();
::comphelper::disposeComponent(m_xStorage);
}
catch(Exception&)
{
}
m_xStorage = NULL;
}
// -----------------------------------------------------------------------------
void ODatabaseSource::disposeControllerFrames()
{
::std::vector< Reference< XController> > aCopy = m_aControllers;
::std::vector< Reference< XController> >::iterator aIter = aCopy.begin();
::std::vector< Reference< XController> >::iterator aEnd = aCopy.end();
for (;aIter != aEnd ; ++aIter)
{
if ( aIter->is() )
{
Reference< XFrame> xFrame = (*aIter)->getFrame();
::comphelper::disposeComponent(xFrame);
}
}
}
2000-09-18 23:16:46 +00:00
//------------------------------------------------------------------------------
Reference< XConnection > ODatabaseSource::buildLowLevelConnection(const ::rtl::OUString& _rUid, const ::rtl::OUString& _rPwd)
{
Reference< XConnection > xReturn;
Reference< XDriverManager > xManager(m_xServiceFactory->createInstance(SERVICE_SDBC_CONNECTIONPOOL)
2001-04-26 08:18:16 +00:00
, UNO_QUERY);
::rtl::OUString sUser(_rUid);
::rtl::OUString sPwd(_rPwd);
if ((0 == sUser.getLength()) && (0 == sPwd.getLength()) && (0 != m_sUser.getLength()))
{ // ease the usage of this method. data source which are intended to have a user automatically
// fill in the user/password combination if the caller of this method does not specify otherwise
// 86951 - 05/08/2001 - frank.schoenheit@germany.sun.com
sUser = m_sUser;
if (0 != m_aPassword.getLength())
sPwd = m_aPassword;
}
sal_uInt16 nExceptionMessageId = RID_STR_COULDNOTCONNECT_UNSPECIFIED;
2000-09-18 23:16:46 +00:00
if (xManager.is())
{
sal_Int32 nAdditionalArgs(0);
if (sUser.getLength()) ++nAdditionalArgs;
if (sPwd.getLength()) ++nAdditionalArgs;
2000-09-18 23:16:46 +00:00
Sequence< PropertyValue > aUserPwd(nAdditionalArgs);
sal_Int32 nArgPos = 0;
if (sUser.getLength())
2000-09-18 23:16:46 +00:00
{
aUserPwd[ nArgPos ].Name = ::rtl::OUString::createFromAscii("user");
aUserPwd[ nArgPos ].Value <<= sUser;
++nArgPos;
2000-09-18 23:16:46 +00:00
}
if (sPwd.getLength())
2000-09-18 23:16:46 +00:00
{
aUserPwd[ nArgPos ].Name = ::rtl::OUString::createFromAscii("password");
aUserPwd[ nArgPos ].Value <<= sPwd;
2000-09-18 23:16:46 +00:00
}
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
Reference< XDriver > xDriver;
try
{
Reference< XDriverAccess > xAccessDrivers( xManager, UNO_QUERY );
if ( xAccessDrivers.is() )
xDriver = xAccessDrivers->getDriverByURL( m_sConnectURL );
}
catch( const Exception& )
{
DBG_ERROR( "ODatabaseSource::buildLowLevelConnection: got a strange exception while analyzing the error!" );
}
if ( !xDriver.is() )
nExceptionMessageId = RID_STR_COULDNOTCONNECT_NODRIVER;
2000-09-18 23:16:46 +00:00
else
{
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
Sequence< PropertyValue > aDriverInfo = lcl_filterDriverProperties(xDriver,m_sConnectURL,m_aInfo);
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
if (nAdditionalArgs)
xReturn = xManager->getConnectionWithInfo(m_sConnectURL, ::comphelper::concatSequences(aUserPwd,aDriverInfo));
else
xReturn = xManager->getConnectionWithInfo(m_sConnectURL,aDriverInfo);
}
}
else
nExceptionMessageId = RID_STR_COULDNOTLOAD_MANAGER;
if ( !xReturn.is() )
{
::rtl::OUString sMessage = DBACORE_RESSTRING( nExceptionMessageId );
SQLContext aContext;
aContext.Details = m_sConnectURL;
throwGenericSQLException( sMessage, static_cast< XDataSource* >( this ), makeAny( aContext ) );
2000-09-18 23:16:46 +00:00
}
return xReturn;
}
//------------------------------------------------------------------------------
const Reference< XNumberFormatsSupplier > & ODatabaseSource::getNumberFormatsSupplier()
{
if (!m_xNumberFormatsSupplier.is())
{
// the arguments : the locale of the current user
UserInformation aUserInfo;
2000-09-18 23:16:46 +00:00
Sequence< Any > aArguments(1);
aArguments.getArray()[0] <<= aUserInfo.getUserLanguage();
m_xNumberFormatsSupplier = Reference< XNumberFormatsSupplier >(m_xServiceFactory->createInstanceWithArguments(
::rtl::OUString::createFromAscii("com.sun.star.util.NumberFormatsSupplier"),
aArguments),
UNO_QUERY);
DBG_ASSERT(m_xNumberFormatsSupplier.is(), "ODatabaseSource::getNumberFormatsSupplier : could not instantiate the formats supplier !");
}
return m_xNumberFormatsSupplier;
}
// OPropertySetHelper
//------------------------------------------------------------------------------
Reference< XPropertySetInfo > ODatabaseSource::getPropertySetInfo() throw (RuntimeException)
{
return createPropertySetInfo( getInfoHelper() ) ;
}
2000-10-11 10:21:40 +00:00
// comphelper::OPropertyArrayUsageHelper
2000-09-18 23:16:46 +00:00
//------------------------------------------------------------------------------
::cppu::IPropertyArrayHelper* ODatabaseSource::createArrayHelper( ) const
{
BEGIN_PROPERTY_HELPER(12)
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
DECL_PROP1(INFO, Sequence< PropertyValue >,BOUND);
2000-09-18 23:16:46 +00:00
DECL_PROP1_BOOL(ISPASSWORDREQUIRED, BOUND);
DECL_PROP1_BOOL(ISREADONLY, READONLY);
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
DECL_PROP1(LAYOUTINFORMATION, Sequence< ::com::sun::star::beans::PropertyValue >,BOUND);
2000-09-18 23:16:46 +00:00
DECL_PROP1(NAME, ::rtl::OUString, READONLY);
DECL_PROP2_IFACE(NUMBERFORMATSSUPPLIER, XNumberFormatsSupplier, READONLY, TRANSIENT);
DECL_PROP1(PASSWORD, ::rtl::OUString, TRANSIENT);
DECL_PROP1_BOOL(SUPPRESSVERSIONCL, BOUND);
2000-09-18 23:16:46 +00:00
DECL_PROP1(TABLEFILTER, Sequence< ::rtl::OUString >,BOUND);
DECL_PROP1(TABLETYPEFILTER, Sequence< ::rtl::OUString >,BOUND);
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
DECL_PROP1(URL, ::rtl::OUString, BOUND);
2000-09-18 23:16:46 +00:00
DECL_PROP1(USER, ::rtl::OUString, BOUND);
END_PROPERTY_HELPER();
}
// cppu::OPropertySetHelper
//------------------------------------------------------------------------------
::cppu::IPropertyArrayHelper& ODatabaseSource::getInfoHelper()
{
return *getArrayHelper();
}
//------------------------------------------------------------------------------
sal_Bool ODatabaseSource::convertFastPropertyValue(Any & rConvertedValue, Any & rOldValue, sal_Int32 nHandle, const Any& rValue ) throw( IllegalArgumentException )
{
if (m_bReadOnly)
throw IllegalArgumentException();
sal_Bool bModified(sal_False);
switch (nHandle)
{
case PROPERTY_ID_TABLEFILTER:
2000-10-11 10:21:40 +00:00
bModified = ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_aTableFilter);
2000-09-18 23:16:46 +00:00
break;
case PROPERTY_ID_TABLETYPEFILTER:
2000-10-11 10:21:40 +00:00
bModified = ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_aTableTypeFilter);
2000-09-18 23:16:46 +00:00
break;
case PROPERTY_ID_USER:
2000-10-11 10:21:40 +00:00
bModified = ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_sUser);
2000-09-18 23:16:46 +00:00
break;
case PROPERTY_ID_PASSWORD:
2000-10-11 10:21:40 +00:00
bModified = ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_aPassword);
2000-09-18 23:16:46 +00:00
break;
case PROPERTY_ID_ISPASSWORDREQUIRED:
2000-10-11 10:21:40 +00:00
bModified = ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_bPasswordRequired);
2000-09-18 23:16:46 +00:00
break;
case PROPERTY_ID_SUPPRESSVERSIONCL:
bModified = ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_bSuppressVersionColumns);
break;
case PROPERTY_ID_LAYOUTINFORMATION:
bModified = ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_aLayoutInformation);
break;
2000-09-18 23:16:46 +00:00
case PROPERTY_ID_URL:
{
2000-10-11 10:21:40 +00:00
bModified = ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_sConnectURL);
2000-09-18 23:16:46 +00:00
} break;
case PROPERTY_ID_INFO:
{
Sequence<PropertyValue> aValues;
if (!(rValue >>= aValues))
throw IllegalArgumentException();
const PropertyValue* pBegin = aValues.getConstArray();
const PropertyValue* pEnd = pBegin + aValues.getLength();
for (;pBegin != pEnd ; ++pBegin)
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
{
if ( !pBegin->Name.getLength() )
throw IllegalArgumentException();
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
}
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
bModified = m_aInfo.getLength() != aValues.getLength();
if ( !bModified )
{
const PropertyValue* pInfoIter = m_aInfo.getConstArray();
const PropertyValue* pBegin = aValues.getConstArray();
const PropertyValue* pEnd = pBegin + aValues.getLength();
for (;!bModified && pBegin != pEnd ; ++pBegin,++pInfoIter)
{
bModified = pBegin->Name != pInfoIter->Name;
if ( !bModified )
{
bModified = !::comphelper::compare(pBegin->Value,pInfoIter->Value);
}
}
}
2000-09-18 23:16:46 +00:00
rConvertedValue = rValue;
rOldValue <<= m_aInfo;
2000-09-18 23:16:46 +00:00
} break;
default:
DBG_ERROR("unknown Property");
}
return bModified;
}
//------------------------------------------------------------------------------
void ODatabaseSource::setFastPropertyValue_NoBroadcast( sal_Int32 nHandle, const Any& rValue ) throw (Exception)
{
switch(nHandle)
{
case PROPERTY_ID_TABLEFILTER:
rValue >>= m_aTableFilter;
break;
case PROPERTY_ID_TABLETYPEFILTER:
rValue >>= m_aTableTypeFilter;
break;
case PROPERTY_ID_USER:
rValue >>= m_sUser;
// if the user name changed, reset the password
m_aPassword = ::rtl::OUString();
2000-09-18 23:16:46 +00:00
break;
case PROPERTY_ID_PASSWORD:
rValue >>= m_aPassword;
break;
case PROPERTY_ID_ISPASSWORDREQUIRED:
m_bPasswordRequired = any2bool(rValue);
break;
case PROPERTY_ID_SUPPRESSVERSIONCL:
m_bSuppressVersionColumns = any2bool(rValue);
break;
2000-09-18 23:16:46 +00:00
case PROPERTY_ID_URL:
rValue >>= m_sConnectURL;
break;
case PROPERTY_ID_INFO:
rValue >>= m_aInfo;
break;
case PROPERTY_ID_LAYOUTINFORMATION:
rValue >>= m_aLayoutInformation;
break;
2000-09-18 23:16:46 +00:00
}
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
setModified(sal_True);
2000-09-18 23:16:46 +00:00
}
//------------------------------------------------------------------------------
void ODatabaseSource::getFastPropertyValue( Any& rValue, sal_Int32 nHandle ) const
{
switch (nHandle)
{
case PROPERTY_ID_TABLEFILTER:
rValue <<= m_aTableFilter;
break;
case PROPERTY_ID_TABLETYPEFILTER:
rValue <<= m_aTableTypeFilter;
break;
case PROPERTY_ID_USER:
rValue <<= m_sUser;
break;
case PROPERTY_ID_PASSWORD:
rValue <<= m_aPassword;
break;
case PROPERTY_ID_ISPASSWORDREQUIRED:
rValue = bool2any(m_bPasswordRequired);
break;
case PROPERTY_ID_SUPPRESSVERSIONCL:
rValue = bool2any(m_bSuppressVersionColumns);
break;
2000-09-18 23:16:46 +00:00
case PROPERTY_ID_ISREADONLY:
rValue = bool2any(m_bReadOnly);
break;
case PROPERTY_ID_INFO:
rValue <<= m_aInfo;
2000-09-18 23:16:46 +00:00
break;
case PROPERTY_ID_URL:
rValue <<= m_sConnectURL;
break;
case PROPERTY_ID_NUMBERFORMATSSUPPLIER:
rValue <<= const_cast<ODatabaseSource*>(this)->getNumberFormatsSupplier();
break;
case PROPERTY_ID_NAME:
rValue <<= m_sName;
break;
case PROPERTY_ID_LAYOUTINFORMATION:
rValue <<= m_aLayoutInformation;
break;
2000-09-18 23:16:46 +00:00
default:
DBG_ERROR("unknown Property");
}
}
// XDataSource
//------------------------------------------------------------------------------
void ODatabaseSource::setLoginTimeout(sal_Int32 seconds) throw( SQLException, RuntimeException )
{
MutexGuard aGuard(m_aMutex);
m_nLoginTimeout = seconds;
}
//------------------------------------------------------------------------------
sal_Int32 ODatabaseSource::getLoginTimeout(void) throw( SQLException, RuntimeException )
{
return m_nLoginTimeout;
}
2000-11-08 15:05:02 +00:00
// XCompletedConnection
//------------------------------------------------------------------------------
Reference< XConnection > SAL_CALL ODatabaseSource::connectWithCompletion( const Reference< XInteractionHandler >& _rxHandler ) throw(SQLException, RuntimeException)
2002-08-12 07:54:24 +00:00
{
return connectWithCompletion(_rxHandler,sal_False);
}
// -----------------------------------------------------------------------------
Reference< XConnection > ODatabaseSource::getConnection(const rtl::OUString& user, const rtl::OUString& password) throw( SQLException, RuntimeException )
{
return getConnection(user,password,sal_False);
}
// -----------------------------------------------------------------------------
Reference< XConnection > SAL_CALL ODatabaseSource::getIsolatedConnection( const ::rtl::OUString& user, const ::rtl::OUString& password ) throw(SQLException, RuntimeException)
{
return getConnection(user,password,sal_True);
}
// -----------------------------------------------------------------------------
Reference< XConnection > SAL_CALL ODatabaseSource::getIsolatedConnectionWithCompletion( const Reference< XInteractionHandler >& _rxHandler ) throw(SQLException, RuntimeException)
{
return connectWithCompletion(_rxHandler,sal_True);
}
// -----------------------------------------------------------------------------
Reference< XConnection > SAL_CALL ODatabaseSource::connectWithCompletion( const Reference< XInteractionHandler >& _rxHandler,sal_Bool _bIsolated ) throw(SQLException, RuntimeException)
2000-11-08 15:05:02 +00:00
{
MutexGuard aGuard(m_aMutex);
if (OComponentHelper::rBHelper.bDisposed)
throw DisposedException();
if (!_rxHandler.is())
{
DBG_ERROR("ODatabaseSource::connectWithCompletion: invalid interaction handler!");
2002-08-12 07:54:24 +00:00
return getConnection(m_sUser, m_aPassword,_bIsolated);
2000-11-08 15:05:02 +00:00
}
::rtl::OUString sUser(m_sUser), sPassword(m_aPassword);
sal_Bool bNewPasswordGiven = sal_False;
2000-11-08 15:05:02 +00:00
if (m_bPasswordRequired && (0 == sPassword.getLength()))
{ // we need a password, but don't have one yet.
// -> ask the user
// build an interaction request
// two continuations (Ok and Cancel)
OInteractionAbort* pAbort = new OInteractionAbort;
OAuthenticationContinuation* pAuthenticate = new OAuthenticationContinuation(m_bReadOnly);
2000-11-08 15:05:02 +00:00
// the request
AuthenticationRequest aRequest;
aRequest.ServerName = m_sName;
aRequest.HasRealm = aRequest.HasAccount = sal_False;
aRequest.HasUserName = aRequest.HasPassword = sal_True;
aRequest.UserName = m_sUser;
aRequest.Password = m_aPassword;
OInteractionRequest* pRequest = new OInteractionRequest(makeAny(aRequest));
Reference< XInteractionRequest > xRequest(pRequest);
// some knittings
pRequest->addContinuation(pAbort);
pRequest->addContinuation(pAuthenticate);
// handle the request
try
{
MutexRelease aRelease(m_aMutex);
// release the mutex when calling the handler, it may need to lock the SolarMutex
2000-11-08 15:05:02 +00:00
_rxHandler->handle(xRequest);
}
catch(Exception&)
{
DBG_ERROR("ODatabaseSource::connectWithCompletion: caught an exception while calling the handler!");
}
if (!pAuthenticate->wasSelected())
return Reference< XConnection >();
// get the result
sUser = m_sUser = pAuthenticate->getUser();
sPassword = pAuthenticate->getPassword();
if (pAuthenticate->getRememberPassword())
{
2000-11-08 15:05:02 +00:00
m_aPassword = pAuthenticate->getPassword();
bNewPasswordGiven = sal_True;
}
}
try
{
2002-08-12 07:54:24 +00:00
return getConnection(sUser, sPassword,_bIsolated);
}
catch(Exception&)
{
if (bNewPasswordGiven)
// assume that we had an authentication problem. Without this we may, after an unsucessfull connect, while
// the user gave us a password an the order to remember it, never allow an password input again (at least
// not without restarting the session)
m_aPassword = ::rtl::OUString();
throw;
2000-11-08 15:05:02 +00:00
}
DBG_ERROR("ODatabaseSource::connectWithCompletion: reached the unreacable!");
return Reference< XConnection >();
2000-11-08 15:05:02 +00:00
}
2002-08-12 07:54:24 +00:00
// -----------------------------------------------------------------------------
Reference< XConnection > ODatabaseSource::buildIsolatedConnection(const rtl::OUString& user, const rtl::OUString& password)
{
Reference< XConnection > xConn;
Reference< XConnection > xSdbcConn = buildLowLevelConnection(user, password);
DBG_ASSERT( xSdbcConn.is(), "ODatabaseSource::getConnection: invalid return value of buildLowLevelConnection!" );
// buildLowLevelConnection is expected to always succeed
if ( xSdbcConn.is() )
{
// build a connection server and return it (no stubs)
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
xConn = new OConnection(*this, xSdbcConn, m_xServiceFactory);
2002-08-12 07:54:24 +00:00
}
return xConn;
}
2000-09-18 23:16:46 +00:00
//------------------------------------------------------------------------------
2002-08-12 07:54:24 +00:00
Reference< XConnection > ODatabaseSource::getConnection(const rtl::OUString& user, const rtl::OUString& password,sal_Bool _bIsolated) throw( SQLException, RuntimeException )
2000-09-18 23:16:46 +00:00
{
MutexGuard aGuard(m_aMutex);
if (OComponentHelper::rBHelper.bDisposed)
throw DisposedException();
Reference< XConnection > xConn;
2002-08-12 07:54:24 +00:00
if ( _bIsolated )
2000-11-14 12:32:59 +00:00
{
2002-08-12 07:54:24 +00:00
xConn = buildIsolatedConnection(user,password);
}
else
{ // create a new proxy for the connection
if ( !m_xSharedConnectionManager.is() )
{
2002-08-12 07:54:24 +00:00
m_pSharedConnectionManager = new OSharedConnectionManager(m_xServiceFactory);
m_xSharedConnectionManager = m_pSharedConnectionManager;
}
2002-08-12 07:54:24 +00:00
xConn = m_pSharedConnectionManager->getConnection(m_sConnectURL,user,password,m_aInfo,this);
}
if ( xConn.is() )
{
Reference< XComponent> xComp(xConn,UNO_QUERY);
if ( xComp.is() )
xComp->addEventListener(this);
m_aConnections.push_back(OWeakConnection(xConn));
2000-11-14 12:32:59 +00:00
}
2000-09-18 23:16:46 +00:00
return xConn;
}
//------------------------------------------------------------------------------
Reference< XNameAccess > SAL_CALL ODatabaseSource::getBookmarks( ) throw (RuntimeException)
2000-09-18 23:16:46 +00:00
{
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
MutexGuard aGuard(m_aMutex);
return static_cast< XNameContainer* >(&m_aBookmarks);
2000-09-18 23:16:46 +00:00
}
//------------------------------------------------------------------------------
Reference< XNameAccess > SAL_CALL ODatabaseSource::getQueryDefinitions( ) throw(RuntimeException)
{
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
MutexGuard aGuard(m_aMutex);
Reference< XNameAccess > xContainer = m_xCommandDefinitions;
if ( !xContainer.is() )
{
if ( !m_aContainer[E_QUERY].get() )
{
m_aContainer[E_QUERY] = TContentPtr(new ODefinitionContainer_Impl);
}
xContainer = new OCommandContainer(m_xServiceFactory,*this,m_aContainer[E_QUERY],sal_False);
m_xCommandDefinitions = xContainer;
}
return xContainer;
2000-09-18 23:16:46 +00:00
}
// -----------------------------------------------------------------------------
class OConnectionNotifier //: public ::std::unary_function<OWeakConnection,void>
{
public:
OConnectionNotifier()
{
}
2000-09-18 23:16:46 +00:00
void operator()(OWeakConnection& _xConnection)
{
}
};
// -----------------------------------------------------------------------------
2000-09-18 23:16:46 +00:00
void ODatabaseSource::flushDocuments()
{
}
2000-12-12 11:20:31 +00:00
// -----------------------------------------------------------------------------
void ODatabaseSource::flushTables()
{
// flush all tables and queries
::std::for_each(m_aConnections.begin(),m_aConnections.end(),OConnectionNotifier());
2000-12-12 11:20:31 +00:00
}
2000-09-18 23:16:46 +00:00
//------------------------------------------------------------------------------
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
// XTablesSupplier
//------------------------------------------------------------------------------
Reference< XNameAccess > ODatabaseSource::getTables() throw( RuntimeException )
2000-09-18 23:16:46 +00:00
{
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
MutexGuard aGuard(m_aMutex);
Reference< XNameAccess > xContainer = m_xTableDefinitions;
if ( !xContainer.is() )
{
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
if ( !m_aContainer[E_TABLE].get() )
{
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
m_aContainer[E_TABLE] = TContentPtr(new ODefinitionContainer_Impl);
}
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
xContainer = new OCommandContainer(m_xServiceFactory,*this,m_aContainer[E_TABLE]);
m_xTableDefinitions = xContainer;
}
INTEGRATION: CWS insight01 (1.48.106); FILE MERGED 2004/07/09 12:46:11 oj 1.48.106.29: #i24598# ongoind work 2004/07/02 11:13:45 oj 1.48.106.28: linux compile 2004/07/02 10:04:49 oj 1.48.106.27: #i30226# add controller, model behavior 2004/05/17 11:04:44 oj 1.48.106.26: commit database storage 2004/05/17 08:46:53 oj 1.48.106.25: #i17123# auto_increment fix for MySQL 2004/05/06 10:50:46 oj 1.48.106.24: insert some try catch 2004/05/06 06:23:28 oj 1.48.106.23: #i12497# allow to append ASC, DESC to index creation 2004/05/05 07:03:03 oj 1.48.106.22: #i28638# make use of the status indicator in the media descriptor 2004/04/28 11:39:26 oj 1.48.106.21: clear storages vector 2004/04/28 05:52:54 oj 1.48.106.20: variable moved 2004/04/21 13:48:00 oj 1.48.106.19: enable catalog and schema disabling 2004/04/16 12:52:01 oj 1.48.106.18: dispsoe storage when disposing ds 2004/04/15 11:33:53 oj 1.48.106.17: only use the URL as key 2004/03/30 12:54:41 oj 1.48.106.16: share storage 2004/03/15 13:28:33 oj 1.48.106.15: #111075# ongoing work 2004/03/12 12:50:07 oj 1.48.106.14: #111075# implement commit 2004/03/12 08:15:15 oj 1.48.106.13: #111075# check info field 2004/03/11 09:06:21 oj 1.48.106.12: #111075# changes for closing 2004/02/20 11:32:31 oj 1.48.106.11: #i25414# extend the datadescriptor for database location and connection resource 2004/02/18 14:45:22 oj 1.48.106.10: #111075# fix rfcount problem 2004/02/12 16:15:25 oj 1.48.106.9: #111075# fix refcount problem 2004/01/22 14:22:39 oj 1.48.106.8: #i24598# parent handling changed 2004/01/02 09:18:11 oj 1.48.106.7: #i22377# add table type filter to info sequence 2003/12/17 09:46:40 oj 1.48.106.6: #111075# ongoing work 2003/11/28 06:59:05 oj 1.48.106.5: #111075# ongoing work 2003/11/17 09:39:10 oj 1.48.106.4: #111075# ongoning work 2003/11/05 11:36:22 oj 1.48.106.3: #111075# ongoing work 2003/10/24 06:27:27 oj 1.48.106.2: #i21643# import filter changes 2003/08/01 11:49:54 oj 1.48.106.1: #111090# ongoing work
2004-08-02 14:09:24 +00:00
return xContainer;
2000-09-18 23:16:46 +00:00
}
//........................................................................
} // namespace dbaccess
//........................................................................