diff options
Diffstat (limited to 'connectivity/source/inc/adabas')
22 files changed, 1537 insertions, 0 deletions
diff --git a/connectivity/source/inc/adabas/BCatalog.hxx b/connectivity/source/inc/adabas/BCatalog.hxx new file mode 100644 index 000000000000..1a74d368311a --- /dev/null +++ b/connectivity/source/inc/adabas/BCatalog.hxx @@ -0,0 +1,77 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _CONNECTIVITY_ADABAS_CATALOG_HXX_ +#define _CONNECTIVITY_ADABAS_CATALOG_HXX_ + +#include "connectivity/sdbcx/VCatalog.hxx" +#include "odbc/OFunctiondefs.hxx" +#include "connectivity/StdTypeDefs.hxx" + +namespace connectivity +{ + namespace adabas + { + // please don't name the class the same name as in an other namespaces + // some compilers have problems with this task as I noticed on windows + class OAdabasConnection; + class OAdabasCatalog : public connectivity::sdbcx::OCatalog + { + OAdabasConnection* m_pConnection; // used to get the metadata + SQLHANDLE m_aConnectionHdl; // used for odbc specific stuff + + void fillVector(const ::rtl::OUString& _sQuery,TStringVector& _rVector); + + protected: + /** builds the name which should be used to access the object later on in the collection. + Will only be called in fillNames. + @param _xRow + The cuurent row from a call of XDatabaseMetaData::getTables. + */ + virtual ::rtl::OUString buildName( const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRow >& _xRow); + public: + // implementation of the pure virtual methods + virtual void refreshTables(); + virtual void refreshViews() ; + virtual void refreshGroups(); + virtual void refreshUsers() ; + + public: + OAdabasCatalog(SQLHANDLE _aConnectionHdl,OAdabasConnection* _pCon); + + OAdabasConnection* getConnection() const { return m_pConnection; } + sdbcx::OCollection* getPrivateTables() const { return m_pTables;} + sdbcx::OCollection* getPrivateViews() const { return m_pViews; } + + static const ::rtl::OUString& getDot(); + // correct the the column properties of float/real/double values + // all & parameters are IN and OUT + static void correctColumnProperties(sal_Int32 _nPrec, sal_Int32& _rnType,::rtl::OUString& _rsTypeName); + }; + } +} +#endif // _CONNECTIVITY_ADABAS_CATALOG_HXX_ + diff --git a/connectivity/source/inc/adabas/BColumn.hxx b/connectivity/source/inc/adabas/BColumn.hxx new file mode 100644 index 000000000000..bfe036b5c858 --- /dev/null +++ b/connectivity/source/inc/adabas/BColumn.hxx @@ -0,0 +1,54 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _CONNECTIVITY_ADABAS_COLUMN_HXX_ +#define _CONNECTIVITY_ADABAS_COLUMN_HXX_ + +#include "connectivity/sdbcx/VColumn.hxx" + +namespace connectivity +{ + namespace adabas + { + class OAdabasColumn : public sdbcx::OColumn + { + public: + OAdabasColumn(); + OAdabasColumn(const ::rtl::OUString& _Name, + const ::rtl::OUString& _TypeName, + const ::rtl::OUString& _DefaultValue, + sal_Int32 _IsNullable, + sal_Int32 _Precision, + sal_Int32 _Scale, + sal_Int32 _Type, + sal_Bool _IsAutoIncrement); + + }; + } +} +#endif // _CONNECTIVITY_ADABAS_COLUMN_HXX_ + diff --git a/connectivity/source/inc/adabas/BColumns.hxx b/connectivity/source/inc/adabas/BColumns.hxx new file mode 100644 index 000000000000..404f07d740e6 --- /dev/null +++ b/connectivity/source/inc/adabas/BColumns.hxx @@ -0,0 +1,61 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _CONNECTIVITY_ADABAS_COLUMNS_HXX_ +#define _CONNECTIVITY_ADABAS_COLUMNS_HXX_ + +#include "connectivity/sdbcx/VCollection.hxx" +#include <com/sun/star/sdbc/XDatabaseMetaData.hpp> +#include "connectivity/sdbcx/IRefreshable.hxx" +#include "adabas/BTable.hxx" + +namespace connectivity +{ + namespace adabas + { + class OColumns : public sdbcx::OCollection + { + protected: + OAdabasTable* m_pTable; + + virtual sdbcx::ObjectType createObject(const ::rtl::OUString& _rName); + virtual void impl_refresh() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > createDescriptor(); + virtual sdbcx::ObjectType appendObject( const ::rtl::OUString& _rForName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor ); + virtual void dropObject(sal_Int32 _nPos,const ::rtl::OUString _sElementName); + public: + OColumns( OAdabasTable* _pTable, + ::osl::Mutex& _rMutex, + const TStringVector &_rVector + ) : sdbcx::OCollection(*_pTable,sal_True,_rMutex,_rVector) + ,m_pTable(_pTable) + {} + }; + } +} +#endif // _CONNECTIVITY_ADABAS_COLUMNS_HXX_ + diff --git a/connectivity/source/inc/adabas/BConnection.hxx b/connectivity/source/inc/adabas/BConnection.hxx new file mode 100644 index 000000000000..678eb2e61049 --- /dev/null +++ b/connectivity/source/inc/adabas/BConnection.hxx @@ -0,0 +1,78 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _CONNECTIVITY_ADABAS_BCONNECTION_HXX_ +#define _CONNECTIVITY_ADABAS_BCONNECTION_HXX_ + +#include <cppuhelper/compbase2.hxx> +#include "odbc/OConnection.hxx" +#include <com/sun/star/sdbcx/XTablesSupplier.hpp> +#include <cppuhelper/weakref.hxx> +#include <vos/ref.hxx> + +namespace connectivity +{ + namespace odbc + { + class ODBCDriver; + } + namespace adabas + { + typedef connectivity::odbc::OConnection OConnection_BASE2; + + // we must use the name "OAdabasConnection" because of a compiler bug + + class OAdabasConnection : public OConnection_BASE2 + { + ::com::sun::star::uno::WeakReference< ::com::sun::star::sdbcx::XTablesSupplier> m_xCatalog; + + protected: + virtual SQLRETURN openConnectionWithAuth(const ::rtl::OUString& aConnectStr,sal_Int32 nTimeOut, const ::rtl::OUString& _uid,const ::rtl::OUString& _pwd); + virtual connectivity::odbc::OConnection* cloneConnection(); // creates a new connection + public: + virtual SQLRETURN Construct( const ::rtl::OUString& url,const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& info) throw(::com::sun::star::sdbc::SQLException); + + OAdabasConnection(const SQLHANDLE _pDriverHandle,connectivity::odbc::ODBCDriver* _pDriver); + + // OComponentHelper; + virtual void SAL_CALL disposing(); + + ::com::sun::star::uno::Reference< ::com::sun::star::sdbcx::XTablesSupplier > createCatalog(); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData > SAL_CALL getMetaData( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XStatement > SAL_CALL createStatement( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XPreparedStatement > SAL_CALL prepareStatement( const ::rtl::OUString& sql ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + + //XUnoTunnel + virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw (::com::sun::star::uno::RuntimeException); + static ::com::sun::star::uno::Sequence< sal_Int8 > getUnoTunnelImplementationId(); + + ::vos::ORef<OSQLColumns> createSelectColumns(const ::rtl::OUString& _rSql); + }; + } +} +#endif // _CONNECTIVITY_ADABAS_BCONNECTION_HXX_ + diff --git a/connectivity/source/inc/adabas/BDatabaseMetaData.hxx b/connectivity/source/inc/adabas/BDatabaseMetaData.hxx new file mode 100644 index 000000000000..bae7de19f4a3 --- /dev/null +++ b/connectivity/source/inc/adabas/BDatabaseMetaData.hxx @@ -0,0 +1,55 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#include "odbc/ODatabaseMetaData.hxx" + +namespace connectivity +{ + namespace odbc + { + class OConnection; + } + namespace adabas + { + typedef odbc::ODatabaseMetaData OAdabasDatabaseMetaData_BASE; + + class OAdabasDatabaseMetaData : public OAdabasDatabaseMetaData_BASE + { + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > impl_getTypeInfo_throw(); + public: + OAdabasDatabaseMetaData(const SQLHANDLE _pHandle,odbc::OConnection* _pCon) + : ODatabaseMetaData(_pHandle,_pCon) + { + } + + // just to return our url + virtual ::rtl::OUString SAL_CALL getURL( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsIntegrityEnhancementFacility( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + }; + } +} + diff --git a/connectivity/source/inc/adabas/BDriver.hxx b/connectivity/source/inc/adabas/BDriver.hxx new file mode 100644 index 000000000000..3b73da08cc6f --- /dev/null +++ b/connectivity/source/inc/adabas/BDriver.hxx @@ -0,0 +1,177 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _CONNECTIVITY_ADABAS_BDRIVER_HXX_ +#define _CONNECTIVITY_ADABAS_BDRIVER_HXX_ + +#include <com/sun/star/sdbc/XDriver.hpp> +#include <com/sun/star/sdbcx/XDataDefinitionSupplier.hpp> +#include <com/sun/star/sdbcx/XTablesSupplier.hpp> +#include <com/sun/star/sdbcx/XCreateCatalog.hpp> +#include <com/sun/star/sdbcx/XDropCatalog.hpp> + +#include <com/sun/star/lang/XEventListener.hpp> + +//#include <unotools/tempfile.hxx> +#include <cppuhelper/implbase4.hxx> +#include "odbc/OFunctiondefs.hxx" +#include "odbc/ODriver.hxx" + +namespace connectivity +{ + namespace adabas + { + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL ODriver_CreateInstance(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory) throw( ::com::sun::star::uno::Exception ); + + typedef ::cppu::ImplHelper4< ::com::sun::star::sdbcx::XCreateCatalog, + ::com::sun::star::sdbcx::XDataDefinitionSupplier, + ::com::sun::star::lang::XEventListener, + ::com::sun::star::sdbcx::XDropCatalog> ODriver_BASE2; + + typedef odbc::ODBCDriver ODriver_BASE; + + class ODriver : public ODriver_BASE, + public ODriver_BASE2 + { + typedef struct DatabaseStruct + { + ::rtl::OUString sControlUser; + ::rtl::OUString sControlPassword; + ::rtl::OUString sSysUser; + ::rtl::OUString sSysPassword; + ::rtl::OUString sDomainPassword; + ::rtl::OUString sCacheSize; + ::rtl::OUString sBackupFile; + ::rtl::OUString sDataDevName; + ::rtl::OUString sSysDevSpace; + ::rtl::OUString sTransLogName; + ::rtl::OUString sDBName; + sal_Int32 nDataIncrement; // which size the database should grow + sal_Int32 nDataSize; + sal_Int32 nLogSize; + sal_Bool bShutDown; + sal_Bool bRestoreDatabase; + + DatabaseStruct() : nDataIncrement(0),nDataSize(0),nLogSize(0),bShutDown(sal_False),bRestoreDatabase(sal_False){ } + } TDatabaseStruct; + + DECLARE_STL_USTRINGACCESS_MAP(TDatabaseStruct,TDatabaseMap); + TDatabaseMap m_aDatabaseMap; // contains all adabas databases with their flag to shut down or not + + // environment vars + ::rtl::OUString m_sDbWork; + ::rtl::OUString m_sDbConfig; + ::rtl::OUString m_sDbRoot; + ::rtl::OUString m_sDbWorkURL; + ::rtl::OUString m_sDbConfigURL; + ::rtl::OUString m_sDbRootURL; + ::rtl::OUString m_sDbRunDir; + ::rtl::OUString m_sDelimit; + + void checkAndInsertNewDevSpace(const ::rtl::OUString& _rDBName,const TDatabaseStruct& _rDBInfo); + void checkAndRestart(const ::rtl::OUString& _rDBName,const TDatabaseStruct& _rDbInfo); + void X_CONS(const ::rtl::OUString& _DBNAME,const ::rtl::OString& _ACTION,const ::rtl::OUString& _FILENAME); + sal_Bool getDBName(const ::rtl::OUString& _rName,::rtl::OUString& _rDBName) const; + ::rtl::OUString getDatabaseInitFile( const TDatabaseStruct& _aInfo); + ::rtl::OUString generateInitFile() const; + void fillEnvironmentVariables(); + void fillInfo(const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& info, TDatabaseStruct& _rDBInfo /*out*/); + void LoadBatch(const ::rtl::OUString& _rDBNAME, + const ::rtl::OUString& _rUSR, + const ::rtl::OUString& _rPWD, + const ::rtl::OUString& _rBatch); + void XUTIL(const ::rtl::OUString& _rParam, + const ::rtl::OUString& _DBNAME, + const ::rtl::OUString& _USRNAME, + const ::rtl::OUString& _USRPWD); + int X_STOP(const ::rtl::OUString& _DBNAME); + int X_START(const ::rtl::OUString& _DBNAME); + void createDb(const TDatabaseStruct& _aInfo); + void clearDatabase(const ::rtl::OUString& _rDBName); + int X_PARAM(const ::rtl::OUString& _DBNAME, + const ::rtl::OUString& _USR, + const ::rtl::OUString& _PWD, + const ::rtl::OUString& _CMD); + sal_Int32 CreateFiles(const TDatabaseStruct& _aInfo); + sal_Bool CreateFile(const ::rtl::OUString &_FileName, + sal_Int32 _nSize); + void PutParam(const ::rtl::OUString& rDBNAME, + const ::rtl::OUString& rWhat, + const ::rtl::OUString& rHow); + void createNeededDirs( const ::rtl::OUString& _rDBName); + sal_Bool isKernelVersion(const char* _pVersion); + sal_Bool isVersion( const ::rtl::OUString& _rDBName, + const char* _pVersion); + + void convertOldVersion( const ::rtl::OUString& _rDBName, + const TDatabaseStruct& _rDbInfo); + + void installSystemTables( const TDatabaseStruct& _aInfo); + + protected: + virtual SQLHANDLE EnvironmentHandle(::rtl::OUString &_rPath); + virtual ~ODriver(); + public: + explicit ODriver(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory); + + // XInterface + static ::rtl::OUString getImplementationName_Static( ) throw(::com::sun::star::uno::RuntimeException); + static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static( ) throw (::com::sun::star::uno::RuntimeException); + private: + DECLARE_SERVICE_INFO(); + + virtual oslGenericFunction getOdbcFunction(sal_Int32 _nIndex) const; + // OComponentHelper + virtual void SAL_CALL disposing(void); + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL acquire() throw(); + virtual void SAL_CALL release() throw(); + + // XDriver + ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > SAL_CALL connect( const ::rtl::OUString& url, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& info ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL acceptsURL( const ::rtl::OUString& url ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::sdbc::DriverPropertyInfo > SAL_CALL getPropertyInfo( const ::rtl::OUString& url, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& info ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + virtual sal_Int32 SAL_CALL getMajorVersion( ) throw(::com::sun::star::uno::RuntimeException); + virtual sal_Int32 SAL_CALL getMinorVersion( ) throw(::com::sun::star::uno::RuntimeException); + + // XDataDefinitionSupplier + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbcx::XTablesSupplier > SAL_CALL getDataDefinitionByConnection( const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& connection ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbcx::XTablesSupplier > SAL_CALL getDataDefinitionByURL( const ::rtl::OUString& url, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& info ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + + // XCreateCatalog + virtual void SAL_CALL createCatalog( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& info ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::container::ElementExistException, ::com::sun::star::uno::RuntimeException); + // XDropCatalog + virtual void SAL_CALL dropCatalog( const ::rtl::OUString& catalogName, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& info ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::uno::RuntimeException); + // XEventListener + virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw(::com::sun::star::uno::RuntimeException); + }; + } + +} +#endif //_CONNECTIVITY_ADABAS_BDRIVER_HXX_ + + diff --git a/connectivity/source/inc/adabas/BGroup.hxx b/connectivity/source/inc/adabas/BGroup.hxx new file mode 100644 index 000000000000..58358b579dcf --- /dev/null +++ b/connectivity/source/inc/adabas/BGroup.hxx @@ -0,0 +1,50 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _CONNECTIVITY_ADABAS_GROUP_HXX_ +#define _CONNECTIVITY_ADABAS_GROUP_HXX_ + +#include "connectivity/sdbcx/VGroup.hxx" + +namespace connectivity +{ + namespace adabas + { + class OAdabasConnection; + class OAdabasGroup : public sdbcx::OGroup + { + OAdabasConnection* m_pConnection; + public: + virtual void refreshUsers(); + public: + OAdabasGroup( OAdabasConnection* _pConnection); + OAdabasGroup( OAdabasConnection* _pConnection,const ::rtl::OUString& _Name); + }; + } +} +#endif // _CONNECTIVITY_ADABAS_GROUP_HXX_ + diff --git a/connectivity/source/inc/adabas/BGroups.hxx b/connectivity/source/inc/adabas/BGroups.hxx new file mode 100644 index 000000000000..33888d4cbefb --- /dev/null +++ b/connectivity/source/inc/adabas/BGroups.hxx @@ -0,0 +1,66 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _CONNECTIVITY_ADABAS_GROUPS_HXX_ +#define _CONNECTIVITY_ADABAS_GROUPS_HXX_ + +#include "connectivity/sdbcx/VCollection.hxx" +namespace connectivity +{ + namespace sdbcx + { + class IRefreshableGroups; + } + namespace adabas + { + class OAdabasConnection; + class OGroups : public sdbcx::OCollection + { + protected: + OAdabasConnection* m_pConnection; + connectivity::sdbcx::IRefreshableGroups* m_pParent; + + virtual sdbcx::ObjectType createObject(const ::rtl::OUString& _rName); + virtual void impl_refresh() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > createDescriptor(); + virtual sdbcx::ObjectType appendObject( const ::rtl::OUString& _rForName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor ); + virtual void dropObject(sal_Int32 _nPos,const ::rtl::OUString _sElementName); + public: + OGroups(::cppu::OWeakObject& _rParent, + ::osl::Mutex& _rMutex, + const TStringVector &_rVector, + OAdabasConnection* _pConnection, + connectivity::sdbcx::IRefreshableGroups* _pParent) : sdbcx::OCollection(_rParent,sal_True,_rMutex,_rVector) + ,m_pConnection(_pConnection) + ,m_pParent(_pParent) + {} + }; + } +} + +#endif // _CONNECTIVITY_ADABAS_GROUPS_HXX_ + diff --git a/connectivity/source/inc/adabas/BIndex.hxx b/connectivity/source/inc/adabas/BIndex.hxx new file mode 100644 index 000000000000..0725d29d0cd6 --- /dev/null +++ b/connectivity/source/inc/adabas/BIndex.hxx @@ -0,0 +1,58 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _CONNECTIVITY_ADABAS_INDEX_HXX_ +#define _CONNECTIVITY_ADABAS_INDEX_HXX_ + +#include "connectivity/sdbcx/VIndex.hxx" +#include <com/sun/star/sdbc/XDatabaseMetaData.hpp> + +namespace connectivity +{ + namespace adabas + { + class OAdabasTable; + class OAdabasIndex : public sdbcx::OIndex + { + OAdabasTable* m_pTable; + public: + virtual void refreshColumns(); + public: + OAdabasIndex(OAdabasTable* _pTable); + OAdabasIndex( OAdabasTable* _pTable, + const ::rtl::OUString& _Name, + const ::rtl::OUString& _Catalog, + sal_Bool _isUnique, + sal_Bool _isPrimaryKeyIndex, + sal_Bool _isClustered + ); + OAdabasTable* getTable() const { return m_pTable; } + }; + } +} +#endif // _CONNECTIVITY_ADABAS_INDEX_HXX_ + diff --git a/connectivity/source/inc/adabas/BIndexColumn.hxx b/connectivity/source/inc/adabas/BIndexColumn.hxx new file mode 100644 index 000000000000..b422ced8c337 --- /dev/null +++ b/connectivity/source/inc/adabas/BIndexColumn.hxx @@ -0,0 +1,58 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _CONNECTIVITY_ADABAS_INDEXCOLUMN_HXX_ +#define _CONNECTIVITY_ADABAS_INDEXCOLUMN_HXX_ + +#include "adabas/BColumn.hxx" + +namespace connectivity +{ + namespace adabas + { + class OIndexColumn : public OAdabasColumn + { + protected: + sal_Bool m_IsAscending; + public: + OIndexColumn(); + OIndexColumn( sal_Bool _IsAscending, + const ::rtl::OUString& _Name, + const ::rtl::OUString& _TypeName, + const ::rtl::OUString& _DefaultValue, + sal_Int32 _IsNullable, + sal_Int32 _Precision, + sal_Int32 _Scale, + sal_Int32 _Type, + sal_Bool _IsAutoIncrement); + + virtual void construct(); + }; + } +} +#endif // _CONNECTIVITY_ADABAS_INDEXCOLUMN_HXX_ + diff --git a/connectivity/source/inc/adabas/BIndexColumns.hxx b/connectivity/source/inc/adabas/BIndexColumns.hxx new file mode 100644 index 000000000000..ca85d71155e8 --- /dev/null +++ b/connectivity/source/inc/adabas/BIndexColumns.hxx @@ -0,0 +1,58 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _CONNECTIVITY_ADABAS_INDEXCOLUMNS_HXX_ +#define _CONNECTIVITY_ADABAS_INDEXCOLUMNS_HXX_ + +#include "connectivity/sdbcx/VCollection.hxx" +#include "adabas/BIndex.hxx" + +namespace connectivity +{ + namespace adabas + { + class OIndexColumns : public sdbcx::OCollection + { + OAdabasIndex* m_pIndex; + protected: + virtual sdbcx::ObjectType createObject(const ::rtl::OUString& _rName); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > createDescriptor(); + virtual void impl_refresh() throw(::com::sun::star::uno::RuntimeException); + virtual sdbcx::ObjectType appendObject( const ::rtl::OUString& _rForName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor ); + public: + OIndexColumns( OAdabasIndex* _pIndex, + ::osl::Mutex& _rMutex, + const TStringVector &_rVector) + : sdbcx::OCollection(*_pIndex,sal_True,_rMutex,_rVector) + ,m_pIndex(_pIndex) + { + } + }; + } +} +#endif // _CONNECTIVITY_ADABAS_INDEXCOLUMNS_HXX_ + diff --git a/connectivity/source/inc/adabas/BIndexes.hxx b/connectivity/source/inc/adabas/BIndexes.hxx new file mode 100644 index 000000000000..3a00416a4605 --- /dev/null +++ b/connectivity/source/inc/adabas/BIndexes.hxx @@ -0,0 +1,58 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _CONNECTIVITY_ADABAS_INDEXES_HXX_ +#define _CONNECTIVITY_ADABAS_INDEXES_HXX_ + +#include "connectivity/sdbcx/VCollection.hxx" +#include <com/sun/star/sdbc/XDatabaseMetaData.hpp> +#include "adabas/BTable.hxx" +namespace connectivity +{ + namespace adabas + { + class OIndexes : public sdbcx::OCollection + { + OAdabasTable* m_pTable; + protected: + virtual sdbcx::ObjectType createObject(const ::rtl::OUString& _rName); + virtual void impl_refresh() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > createDescriptor(); + virtual sdbcx::ObjectType appendObject( const ::rtl::OUString& _rForName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor ); + virtual void dropObject(sal_Int32 _nPos,const ::rtl::OUString _sElementName); + public: + OIndexes(OAdabasTable* _pTable, + ::osl::Mutex& _rMutex, + const TStringVector &_rVector + ) : sdbcx::OCollection(*_pTable,sal_True,_rMutex,_rVector) + ,m_pTable(_pTable) + {} + }; + } +} + +#endif // _CONNECTIVITY_ADABAS_INDEXES_HXX_ + diff --git a/connectivity/source/inc/adabas/BKeys.hxx b/connectivity/source/inc/adabas/BKeys.hxx new file mode 100644 index 000000000000..6ed97dd2e58e --- /dev/null +++ b/connectivity/source/inc/adabas/BKeys.hxx @@ -0,0 +1,55 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _CONNECTIVITY_ADABAS_KEYS_HXX_ +#define _CONNECTIVITY_ADABAS_KEYS_HXX_ + +#include "connectivity/TKeys.hxx" +#include <com/sun/star/sdbc/XDatabaseMetaData.hpp> +#include "adabas/BTable.hxx" +namespace connectivity +{ + namespace adabas + { + class OKeys : public OKeysHelper + { + protected: + virtual sdbcx::ObjectType appendObject( const ::rtl::OUString& _rForName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor ); + + virtual ::rtl::OUString getDropForeignKey() const; + public: + OKeys(OAdabasTable* _pTable, + ::osl::Mutex& _rMutex, + const TStringVector &_rVector + ) : OKeysHelper(_pTable,_rMutex,_rVector) + {} + }; + } +} + +#endif // _CONNECTIVITY_ADABAS_KEYS_HXX_ + diff --git a/connectivity/source/inc/adabas/BPreparedStatement.hxx b/connectivity/source/inc/adabas/BPreparedStatement.hxx new file mode 100644 index 000000000000..a5cfac1666e4 --- /dev/null +++ b/connectivity/source/inc/adabas/BPreparedStatement.hxx @@ -0,0 +1,52 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef CONNECTIVITY_ADABAS_PREPAREDSTATEMENT_HXX +#define CONNECTIVITY_ADABAS_PREPAREDSTATEMENT_HXX + +#include "odbc/OPreparedStatement.hxx" +#include "adabas/BConnection.hxx" + +namespace connectivity +{ + namespace adabas + { + class OAdabasPreparedStatement : public ::connectivity::odbc::OPreparedStatement + { + ::vos::ORef<OSQLColumns> m_aSelectColumns; + protected: + virtual odbc::OResultSet* createResulSet(); + virtual void setResultSetConcurrency(sal_Int32 _par0) ; + virtual void setResultSetType(sal_Int32 _par0) ; + virtual void setUsingBookmarks(sal_Bool _bUseBookmark) ; + public: + OAdabasPreparedStatement( OAdabasConnection* _pConnection,const ::rtl::OUString& sql); + }; + } +} + +#endif // CONNECTIVITY_ADABAS_PREPAREDSTATEMENT_HXX + diff --git a/connectivity/source/inc/adabas/BResultSet.hxx b/connectivity/source/inc/adabas/BResultSet.hxx new file mode 100644 index 000000000000..46dbf5684484 --- /dev/null +++ b/connectivity/source/inc/adabas/BResultSet.hxx @@ -0,0 +1,60 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef CONNECTIVITY_ADABAS_RESULTSET_HXX +#define CONNECTIVITY_ADABAS_RESULTSET_HXX + +#include "odbc/OResultSet.hxx" + +namespace connectivity +{ + namespace adabas + { + class OAdabasResultSet : public ::connectivity::odbc::OResultSet + { + ::vos::ORef<OSQLColumns> m_aSelectColumns; + public: + OAdabasResultSet(SQLHANDLE _pStatementHandle,::connectivity::odbc::OStatement_Base* pStmt,const ::vos::ORef<OSQLColumns>& _rSelectColumns) + : ::connectivity::odbc::OResultSet( _pStatementHandle,pStmt) + ,m_aSelectColumns(_rSelectColumns) + {} + + // XResultSetMetaDataSupplier + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData > SAL_CALL getMetaData( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + + virtual sal_Bool SAL_CALL next( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL first( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL last( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL absolute( sal_Int32 row ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL relative( sal_Int32 rows ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL previous( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL refreshRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + }; + } +} + +#endif // CONNECTIVITY_ADABAS_RESULTSET_HXX + diff --git a/connectivity/source/inc/adabas/BResultSetMetaData.hxx b/connectivity/source/inc/adabas/BResultSetMetaData.hxx new file mode 100644 index 000000000000..1cbb328bcf1e --- /dev/null +++ b/connectivity/source/inc/adabas/BResultSetMetaData.hxx @@ -0,0 +1,56 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef CONNECTIVITY_ADABAS_RESULTSETMETADATA_HXX +#define CONNECTIVITY_ADABAS_RESULTSETMETADATA_HXX + +#include "odbc/OResultSetMetaData.hxx" +#include <vos/ref.hxx> + +namespace connectivity +{ + namespace adabas + { + //************************************************************** + //************ Class: ResultSetMetaData + //************************************************************** + + typedef odbc::OResultSetMetaData OAdabasResultSetMetaData_BASE; + class OAdabasResultSetMetaData : public OAdabasResultSetMetaData_BASE + { + ::vos::ORef<OSQLColumns> m_aSelectColumns; + public: + // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: + OAdabasResultSetMetaData(odbc::OConnection* _pConnection, SQLHANDLE _pStmt ,const ::vos::ORef<OSQLColumns>& _rSelectColumns); + virtual ~OAdabasResultSetMetaData(); + + virtual sal_Int32 SAL_CALL getColumnType( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + virtual sal_Int32 SAL_CALL isNullable( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL isAutoIncrement( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + }; + } +} +#endif // CONNECTIVITY_ADABAS_RESULTSETMETADATA_HXX diff --git a/connectivity/source/inc/adabas/BStatement.hxx b/connectivity/source/inc/adabas/BStatement.hxx new file mode 100644 index 000000000000..abd8f93ef395 --- /dev/null +++ b/connectivity/source/inc/adabas/BStatement.hxx @@ -0,0 +1,62 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef CONNECTIVITY_ADABAS_STATEMENT_HXX +#define CONNECTIVITY_ADABAS_STATEMENT_HXX + +#include "odbc/OStatement.hxx" +#include "adabas/BConnection.hxx" +#ifndef _CONNECTIVITY_COMMONTOOLS_HXX_ +#include "connectivity/commontools.hxx" +#endif +#include <vos/ref.hxx> + +namespace connectivity +{ + namespace adabas + { + class OAdabasStatement : public ::connectivity::odbc::OStatement + { + OAdabasConnection* m_pOwnConnection; + ::vos::ORef<OSQLColumns> m_aSelectColumns; + protected: + virtual odbc::OResultSet* createResulSet(); + virtual void setResultSetConcurrency(sal_Int32 _par0); + virtual void setResultSetType(sal_Int32 _par0) ; + virtual void setUsingBookmarks(sal_Bool _bUseBookmark); + public: + OAdabasStatement( OAdabasConnection* _pConnection) + : ::connectivity::odbc::OStatement( _pConnection ) + ,m_pOwnConnection(_pConnection) + {} + + virtual sal_Bool SAL_CALL execute( const ::rtl::OUString& sql ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + }; + } +} + +#endif // CONNECTIVITY_ADABAS_STATEMENT_HXX + diff --git a/connectivity/source/inc/adabas/BTable.hxx b/connectivity/source/inc/adabas/BTable.hxx new file mode 100644 index 000000000000..750f48093da1 --- /dev/null +++ b/connectivity/source/inc/adabas/BTable.hxx @@ -0,0 +1,110 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _CONNECTIVITY_ADABAS_TABLE_HXX_ +#define _CONNECTIVITY_ADABAS_TABLE_HXX_ + +#include "connectivity/sdbcx/VTable.hxx" +#include <com/sun/star/sdbc/XDatabaseMetaData.hpp> +#include "adabas/BConnection.hxx" +#include "connectivity/TTableHelper.hxx" + +namespace connectivity +{ + namespace adabas + { + typedef connectivity::OTableHelper OTable_TYPEDEF; + + ::rtl::OUString getTypeString(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xColProp); + + class OAdabasTable : public OTableHelper + { + OAdabasConnection* m_pConnection; + protected: + /** creates the column collection for the table + @param _rNames + The column names. + */ + virtual sdbcx::OCollection* createColumns(const TStringVector& _rNames); + + /** creates the key collection for the table + @param _rNames + The key names. + */ + virtual sdbcx::OCollection* createKeys(const TStringVector& _rNames); + + /** creates the index collection for the table + @param _rNames + The index names. + */ + virtual sdbcx::OCollection* createIndexes(const TStringVector& _rNames); + + public: + OAdabasTable( sdbcx::OCollection* _pTables, + OAdabasConnection* _pConnection); + OAdabasTable( sdbcx::OCollection* _pTables, + OAdabasConnection* _pConnection, + const ::rtl::OUString& _Name, + const ::rtl::OUString& _Type, + const ::rtl::OUString& _Description = ::rtl::OUString(), + const ::rtl::OUString& _SchemaName = ::rtl::OUString(), + const ::rtl::OUString& _CatalogName = ::rtl::OUString() + ); + + ::rtl::OUString getTableName() const { return m_Name; } + ::rtl::OUString getSchema() const { return m_SchemaName; } + + // com::sun::star::lang::XUnoTunnel + virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException); + static ::com::sun::star::uno::Sequence< sal_Int8 > getUnoTunnelImplementationId(); + + // XAlterTable + virtual void SAL_CALL alterColumnByName( const ::rtl::OUString& colName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::uno::RuntimeException); + // XNamed + virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException); + /** + returns the ALTER TABLE XXX COLUMN statement + */ + ::rtl::OUString getAlterTableColumnPart(const ::rtl::OUString& _rsColumnName ); + + // starts a sql transaaction + void beginTransAction(); + // rolls back a sql transaaction + void rollbackTransAction(); + // ends a sql transaaction + void endTransAction(); + // some methods to alter table structures + void alterColumnType(const ::rtl::OUString& _rColName,const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _xDescriptor); + void alterNotNullValue(sal_Int32 _nNewNullable,const ::rtl::OUString& _rColName); + void alterDefaultValue(const ::rtl::OUString& _sNewDefault,const ::rtl::OUString& _rColName); + void dropDefaultValue(const ::rtl::OUString& _sNewDefault); + void addDefaultValue(const ::rtl::OUString& _sNewDefault,const ::rtl::OUString& _rColName); + }; + } +} +#endif // _CONNECTIVITY_ADABAS_TABLE_HXX_ + diff --git a/connectivity/source/inc/adabas/BTables.hxx b/connectivity/source/inc/adabas/BTables.hxx new file mode 100644 index 000000000000..089cbd082b42 --- /dev/null +++ b/connectivity/source/inc/adabas/BTables.hxx @@ -0,0 +1,80 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _CONNECTIVITY_ADABAS_TABLES_HXX_ +#define _CONNECTIVITY_ADABAS_TABLES_HXX_ + +#include "connectivity/sdbcx/VCollection.hxx" +#include <com/sun/star/sdbc/XDatabaseMetaData.hpp> +namespace connectivity +{ + namespace adabas + { + class OTables : public sdbcx::OCollection + { + ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData > m_xMetaData; + // OCatalog* m_pParent; + protected: + virtual sdbcx::ObjectType createObject(const ::rtl::OUString& _rName); + virtual void impl_refresh() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > createDescriptor(); + virtual sdbcx::ObjectType appendObject( const ::rtl::OUString& _rForName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor ); + virtual void dropObject(sal_Int32 _nPos,const ::rtl::OUString _sElementName); + + void setComments(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + void createTable( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor ); + + virtual ::rtl::OUString getNameForObject(const sdbcx::ObjectType& _xObject); + public: + OTables(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >& _rMetaData,::cppu::OWeakObject& _rParent, ::osl::Mutex& _rMutex, + const TStringVector &_rVector) : sdbcx::OCollection(_rParent,sal_True,_rMutex,_rVector) + ,m_xMetaData(_rMetaData) + {} + + // only the name is identical to ::cppu::OComponentHelper + virtual void SAL_CALL disposing(void); + + // XDrop + void appendNew(const ::rtl::OUString& _rsNewTable); + // some helper functions + /** + returns a sql string which contains the column definition part for create or alter statements + */ + static ::rtl::OUString getColumnSqlType(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxColProp); + /** + returns the "not null" part or the default part of the table statement + */ + static ::rtl::OUString getColumnSqlNotNullDefault(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxColProp); + /** + returns the corresponding typename + can contain () which have to filled with values + */ + static ::rtl::OUString getTypeString(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxColProp); + }; + } +} +#endif // _CONNECTIVITY_ADABAS_TABLES_HXX_ + diff --git a/connectivity/source/inc/adabas/BUser.hxx b/connectivity/source/inc/adabas/BUser.hxx new file mode 100644 index 000000000000..d694b950e120 --- /dev/null +++ b/connectivity/source/inc/adabas/BUser.hxx @@ -0,0 +1,82 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _CONNECTIVITY_ADABAS_USER_HXX_ +#define _CONNECTIVITY_ADABAS_USER_HXX_ + +#include "connectivity/sdbcx/VUser.hxx" + +namespace connectivity +{ + namespace adabas + { + class OAdabasConnection; + typedef connectivity::sdbcx::OUser OUser_TYPEDEF; + + class OAdabasUser : public OUser_TYPEDEF + { + OAdabasConnection* m_pConnection; + + ::rtl::OUString getPrivilegeString(sal_Int32 nRights) const; + // return the privileges and additional the grant rights + void getAnyTablePrivileges(const ::rtl::OUString& objName, sal_Int32& nRights,sal_Int32& nRightsWithGrant) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + public: + virtual void refreshGroups(); + public: + OAdabasUser( OAdabasConnection* _pConnection); + OAdabasUser( OAdabasConnection* _pConnection,const ::rtl::OUString& _Name); + + // XUser + virtual void SAL_CALL changePassword( const ::rtl::OUString& objPassword, const ::rtl::OUString& newPassword ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + // XAuthorizable + virtual sal_Int32 SAL_CALL getPrivileges( const ::rtl::OUString& objName, sal_Int32 objType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + virtual sal_Int32 SAL_CALL getGrantablePrivileges( const ::rtl::OUString& objName, sal_Int32 objType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL grantPrivileges( const ::rtl::OUString& objName, sal_Int32 objType, sal_Int32 objPrivileges ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL revokePrivileges( const ::rtl::OUString& objName, sal_Int32 objType, sal_Int32 objPrivileges ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + }; + + class OUserExtend; + typedef ::comphelper::OPropertyArrayUsageHelper<OUserExtend> OUserExtend_PROP; + + class OUserExtend : public OAdabasUser, + public OUserExtend_PROP + { + protected: + ::rtl::OUString m_Password; + // OPropertyArrayUsageHelper + virtual ::cppu::IPropertyArrayHelper* createArrayHelper() const; + // OPropertySetHelper + virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper(); + public: + OUserExtend(OAdabasConnection* _pConnection); + + virtual void construct(); + }; + } +} +#endif // _CONNECTIVITY_ADABAS_USER_HXX_ + diff --git a/connectivity/source/inc/adabas/BUsers.hxx b/connectivity/source/inc/adabas/BUsers.hxx new file mode 100644 index 000000000000..7f5d588e96ae --- /dev/null +++ b/connectivity/source/inc/adabas/BUsers.hxx @@ -0,0 +1,66 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _CONNECTIVITY_ADABAS_USERS_HXX_ +#define _CONNECTIVITY_ADABAS_USERS_HXX_ + +#include "connectivity/sdbcx/VCollection.hxx" +namespace connectivity +{ + namespace sdbcx + { + class IRefreshableUsers; + } + namespace adabas + { + class OAdabasConnection; + class OUsers : public sdbcx::OCollection + { + OAdabasConnection* m_pConnection; + connectivity::sdbcx::IRefreshableUsers* m_pParent; + public: + virtual sdbcx::ObjectType createObject(const ::rtl::OUString& _rName); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > createDescriptor(); + virtual void impl_refresh() throw(::com::sun::star::uno::RuntimeException); + virtual sdbcx::ObjectType appendObject( const ::rtl::OUString& _rForName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor ); + virtual void dropObject(sal_Int32 _nPos,const ::rtl::OUString _sElementName); + public: + OUsers( ::cppu::OWeakObject& _rParent, + ::osl::Mutex& _rMutex, + const TStringVector &_rVector, + OAdabasConnection* _pConnection, + connectivity::sdbcx::IRefreshableUsers* _pParent) : sdbcx::OCollection(_rParent,sal_True,_rMutex,_rVector) + ,m_pConnection(_pConnection) + ,m_pParent(_pParent) + {} + + }; + } +} + +#endif // _CONNECTIVITY_ADABAS_USERS_HXX_ + diff --git a/connectivity/source/inc/adabas/BViews.hxx b/connectivity/source/inc/adabas/BViews.hxx new file mode 100644 index 000000000000..cfb0389b28e9 --- /dev/null +++ b/connectivity/source/inc/adabas/BViews.hxx @@ -0,0 +1,64 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _CONNECTIVITY_ADABAS_VIEWS_HXX_ +#define _CONNECTIVITY_ADABAS_VIEWS_HXX_ + +#include "connectivity/sdbcx/VCollection.hxx" +#include <com/sun/star/sdbc/XDatabaseMetaData.hpp> +namespace connectivity +{ + namespace adabas + { + class OViews : public sdbcx::OCollection + { + ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData > m_xMetaData; + sal_Bool m_bInDrop; + // OCatalog* m_pParent; + protected: + virtual sdbcx::ObjectType createObject(const ::rtl::OUString& _rName); + virtual void impl_refresh() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > createDescriptor(); + virtual sdbcx::ObjectType appendObject( const ::rtl::OUString& _rForName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor ); + virtual void dropObject(sal_Int32 _nPos,const ::rtl::OUString _sElementName); + + void createView( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor ); + public: + OViews(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >& _rMetaData,::cppu::OWeakObject& _rParent, ::osl::Mutex& _rMutex, + const TStringVector &_rVector) : sdbcx::OCollection(_rParent,sal_True,_rMutex,_rVector) + ,m_xMetaData(_rMetaData) + ,m_bInDrop(sal_False) + {} + + // only the name is identical to ::cppu::OComponentHelper + virtual void SAL_CALL disposing(void); + + void dropByNameImpl(const ::rtl::OUString& elementName); + }; + } +} +#endif // _CONNECTIVITY_ADABAS_VIEWS_HXX_ + |