LCOV - code coverage report
Current view: top level - libreoffice/connectivity/source/inc/odbc - ODatabaseMetaDataResultSet.hxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 0 4 0.0 %
Date: 2012-12-27 Functions: 0 2 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : #ifndef _CONNECTIVITY_ODBC_ADATABASEMETADATARESULTSET_HXX_
      21             : #define _CONNECTIVITY_ODBC_ADATABASEMETADATARESULTSET_HXX_
      22             : 
      23             : #include <com/sun/star/sdbc/XResultSet.hpp>
      24             : #include <com/sun/star/sdbc/XRow.hpp>
      25             : #include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
      26             : #include <com/sun/star/sdbc/XCloseable.hpp>
      27             : #include <com/sun/star/sdbc/XColumnLocate.hpp>
      28             : #include <com/sun/star/util/XCancellable.hpp>
      29             : #include <com/sun/star/sdbc/XWarningsSupplier.hpp>
      30             : #include <com/sun/star/sdbc/XResultSetUpdate.hpp>
      31             : #include <com/sun/star/sdbc/XRowUpdate.hpp>
      32             : #include <cppuhelper/compbase7.hxx>
      33             : #include <comphelper/proparrhlp.hxx>
      34             : #include "odbc/OStatement.hxx"
      35             : #include "odbc/ODatabaseMetaData.hxx"
      36             : #include "odbc/odbcbasedllapi.hxx"
      37             : #include <comphelper/broadcasthelper.hxx>
      38             : #include "connectivity/StdTypeDefs.hxx"
      39             : 
      40             : namespace connectivity
      41             : {
      42             :     namespace odbc
      43             :     {
      44             :         /*
      45             :         **  java_sql_ResultSet
      46             :         */
      47             :         typedef ::cppu::WeakComponentImplHelper7<   ::com::sun::star::sdbc::XResultSet,
      48             :                                                     ::com::sun::star::sdbc::XRow,
      49             :                                                     ::com::sun::star::sdbc::XResultSetMetaDataSupplier,
      50             :                                                     ::com::sun::star::util::XCancellable,
      51             :                                                     ::com::sun::star::sdbc::XWarningsSupplier,
      52             :                                                     ::com::sun::star::sdbc::XCloseable,
      53             :                                                     ::com::sun::star::sdbc::XColumnLocate> ODatabaseMetaDataResultSet_BASE;
      54             : 
      55             :         class OOO_DLLPUBLIC_ODBCBASE ODatabaseMetaDataResultSet :
      56             :                                     public comphelper::OBaseMutex,
      57             :                                     public  ODatabaseMetaDataResultSet_BASE,
      58             :                                     public  ::cppu::OPropertySetHelper,
      59             :                                     public  ::comphelper::OPropertyArrayUsageHelper<ODatabaseMetaDataResultSet>
      60             :         {
      61             :             ::connectivity::TIntVector                      m_aColMapping; // pos 0 is unused so we don't have to decrement 1 everytime
      62             : 
      63             :             ::std::map<sal_Int32, ::connectivity::TInt2IntMap >                 m_aValueRange;
      64             :             ::std::map<sal_Int32, ::connectivity::TString2IntMap >              m_aStrValueRange;
      65             : 
      66             :             ::std::map<sal_Int32, ::connectivity::TInt2StringMap >              m_aIntValueRange;
      67             :             ::std::map<sal_Int32,SWORD>                                         m_aODBCColumnTypes;
      68             : 
      69             :             SQLHANDLE                                                                   m_aStatementHandle;   // ... until freed
      70             :             SQLHANDLE                                                                   m_aConnectionHandle;
      71             :             ::com::sun::star::uno::WeakReferenceHelper                                  m_aStatement;
      72             :             ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData>        m_xMetaData;
      73             :             SQLUSMALLINT*                               m_pRowStatusArray;
      74             :             OConnection*                                m_pConnection;
      75             :             rtl_TextEncoding                            m_nTextEncoding;
      76             :             sal_Int32                                   m_nRowPos;
      77             :             sal_Int32                                   m_nLastColumnPos;       // used for m_aRow just to know where we are
      78             :             sal_Int32                                   m_nDriverColumnCount;   // column count of the driver wich can sometimes be less than the metadata count
      79             :             SQLRETURN                                   m_nCurrentFetchState;
      80             :             sal_Bool                                    m_bWasNull;
      81             :             sal_Bool                                    m_bEOF;                 // after last record
      82             : 
      83             :             // set the columncount of the driver
      84             :             void checkColumnCount();
      85             :             sal_Int32 getResultSetConcurrency() const throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
      86             :             sal_Int32 getResultSetType()        const throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
      87             :             sal_Int32 getFetchDirection()       const throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
      88             :             sal_Int32 getFetchSize()            const throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
      89             :             ::rtl::OUString getCursorName()     const throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
      90             :             SWORD                               impl_getColumnType_nothrow(sal_Int32 columnIndex);
      91             : 
      92             :             sal_Int32 mapColumn (sal_Int32  column);
      93             : 
      94             :         protected:
      95             : 
      96             :             // OPropertyArrayUsageHelper
      97             :             virtual ::cppu::IPropertyArrayHelper* createArrayHelper( ) const;
      98             :             // OPropertySetHelper
      99             :             virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper();
     100             : 
     101             :             virtual sal_Bool SAL_CALL convertFastPropertyValue(
     102             :                                                                 ::com::sun::star::uno::Any & rConvertedValue,
     103             :                                                                 ::com::sun::star::uno::Any & rOldValue,
     104             :                                 sal_Int32 nHandle,
     105             :                                                                 const ::com::sun::star::uno::Any& rValue )
     106             :                                     throw (::com::sun::star::lang::IllegalArgumentException);
     107             :             virtual void SAL_CALL setFastPropertyValue_NoBroadcast(
     108             :                                     sal_Int32 nHandle,
     109             :                                                                         const ::com::sun::star::uno::Any& rValue
     110             :                                                      )
     111             :                                                                                                          throw (::com::sun::star::uno::Exception);
     112             :             virtual void SAL_CALL getFastPropertyValue(
     113             :                                                                         ::com::sun::star::uno::Any& rValue,
     114             :                                     sal_Int32 nHandle
     115             :                                          ) const;
     116             :             ~ODatabaseMetaDataResultSet();
     117             :             template < typename T, SQLSMALLINT sqlTypeId > T getInteger ( sal_Int32 columnIndex );
     118             : 
     119             :         public:
     120             :             // A ctor needed for returning the object
     121             :             ODatabaseMetaDataResultSet(OConnection* _pConnection);
     122             : 
     123             : 
     124           0 :             inline oslGenericFunction getOdbcFunction(sal_Int32 _nIndex)  const
     125             :             {
     126           0 :                 return m_pConnection->getOdbcFunction(_nIndex);
     127             :             }
     128             :             // ::cppu::OComponentHelper
     129             :             virtual void SAL_CALL disposing(void);
     130             :             // XInterface
     131             :             virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
     132             :             virtual void SAL_CALL acquire() throw();
     133             :             virtual void SAL_CALL release() throw();
     134             :             //XTypeProvider
     135             :             virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes(  ) throw(::com::sun::star::uno::RuntimeException);
     136             :             // XPropertySet
     137             :             virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo(  ) throw(::com::sun::star::uno::RuntimeException);
     138           0 :             ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > operator *()
     139             :             {
     140           0 :                 return ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >(*(ODatabaseMetaDataResultSet_BASE*)this);
     141             :             }
     142             :             // XResultSet
     143             :             virtual sal_Bool SAL_CALL next(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     144             :             virtual sal_Bool SAL_CALL isBeforeFirst(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     145             :             virtual sal_Bool SAL_CALL isAfterLast(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     146             :             virtual sal_Bool SAL_CALL isFirst(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     147             :             virtual sal_Bool SAL_CALL isLast(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     148             :             virtual void SAL_CALL beforeFirst(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     149             :             virtual void SAL_CALL afterLast(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     150             :             virtual sal_Bool SAL_CALL first(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     151             :             virtual sal_Bool SAL_CALL last(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     152             :             virtual sal_Int32 SAL_CALL getRow(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     153             :             virtual sal_Bool SAL_CALL absolute( sal_Int32 row ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     154             :             virtual sal_Bool SAL_CALL relative( sal_Int32 rows ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     155             :             virtual sal_Bool SAL_CALL previous(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     156             :             virtual void SAL_CALL refreshRow(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     157             :             virtual sal_Bool SAL_CALL rowUpdated(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     158             :             virtual sal_Bool SAL_CALL rowInserted(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     159             :             virtual sal_Bool SAL_CALL rowDeleted(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     160             :             virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getStatement(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     161             :             // XRow
     162             :             virtual sal_Bool SAL_CALL wasNull(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     163             :             virtual ::rtl::OUString SAL_CALL getString( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     164             :             virtual sal_Bool SAL_CALL getBoolean( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     165             :             virtual sal_Int8 SAL_CALL getByte( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     166             :             virtual sal_Int16 SAL_CALL getShort( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     167             :             virtual sal_Int32 SAL_CALL getInt( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     168             :             virtual sal_Int64 SAL_CALL getLong( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     169             :             virtual float SAL_CALL getFloat( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     170             :             virtual double SAL_CALL getDouble( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     171             :             virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getBytes( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     172             :             virtual ::com::sun::star::util::Date SAL_CALL getDate( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     173             :             virtual ::com::sun::star::util::Time SAL_CALL getTime( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     174             :             virtual ::com::sun::star::util::DateTime SAL_CALL getTimestamp( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     175             :             virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getBinaryStream( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     176             :             virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getCharacterStream( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     177             :             virtual ::com::sun::star::uno::Any SAL_CALL getObject( sal_Int32 columnIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& typeMap ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     178             :             virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRef > SAL_CALL getRef( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     179             :             virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XBlob > SAL_CALL getBlob( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     180             :             virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XClob > SAL_CALL getClob( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     181             :             virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XArray > SAL_CALL getArray( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     182             :             // XResultSetMetaDataSupplier
     183             :             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);
     184             :             // XCancellable
     185             :             virtual void SAL_CALL cancel(  ) throw(::com::sun::star::uno::RuntimeException);
     186             :             // XCloseable
     187             :             virtual void SAL_CALL close(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     188             :             // XWarningsSupplier
     189             :             virtual ::com::sun::star::uno::Any SAL_CALL getWarnings(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     190             :             virtual void SAL_CALL clearWarnings(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     191             :             // XColumnLocate
     192             :             virtual sal_Int32 SAL_CALL findColumn( const ::rtl::OUString& columnName ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     193             : 
     194             :             const ::connectivity::TIntVector& getColumnMapping() { return m_aColMapping; }
     195             : 
     196             :             void openTablesTypes( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     197             :             void openTypeInfo() throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     198             :             void openCatalogs() throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     199             :             void openSchemas() throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     200             :             void openTables(const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern,
     201             :                                             const ::rtl::OUString& tableNamePattern, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& types )
     202             :                                             throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     203             :             void openColumnPrivileges(      const ::com::sun::star::uno::Any& catalog,    const ::rtl::OUString& schema,
     204             :                                                                     const ::rtl::OUString& table,   const ::rtl::OUString& columnNamePattern )throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     205             :             void openColumns(       const ::com::sun::star::uno::Any& catalog,                            const ::rtl::OUString& schemaPattern,
     206             :                                                     const ::rtl::OUString& tableNamePattern,        const ::rtl::OUString& columnNamePattern )throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     207             :             void openProcedureColumns(      const ::com::sun::star::uno::Any& catalog,            const ::rtl::OUString& schemaPattern,
     208             :                                                             const ::rtl::OUString& procedureNamePattern,const ::rtl::OUString& columnNamePattern )throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     209             :             void openProcedures(    const ::com::sun::star::uno::Any& catalog,            const ::rtl::OUString& schemaPattern,
     210             :                                                             const ::rtl::OUString& procedureNamePattern)throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     211             :             void openVersionColumns(const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema,
     212             :                                                             const ::rtl::OUString& table)throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     213             :             void openBestRowIdentifier( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema,
     214             :                                                                     const ::rtl::OUString& table,sal_Int32 scope,sal_Bool nullable )throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     215             :             void openForeignKeys( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString* schema,const ::rtl::OUString* table,
     216             :                                                               const ::com::sun::star::uno::Any& catalog2, const ::rtl::OUString* schema2,const ::rtl::OUString* table2)throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     217             :             void openExportedKeys(const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema,const ::rtl::OUString& table)throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     218             :             void openImportedKeys(const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema,const ::rtl::OUString& table)throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     219             :             void openPrimaryKeys(const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema,const ::rtl::OUString& table)throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     220             :             void openTablePrivileges(const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern,
     221             :                                                               const ::rtl::OUString& tableNamePattern)throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     222             :             void openSpecialColumns(sal_Bool _bRowVer,const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema,
     223             :                                                                     const ::rtl::OUString& table,sal_Int32 scope,   sal_Bool nullable )throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     224             :             void openIndexInfo( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema,
     225             :                                                     const ::rtl::OUString& table,sal_Bool unique,sal_Bool approximate )throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
     226             : 
     227             :         protected:
     228             :             using OPropertySetHelper::getFastPropertyValue;
     229             :         };
     230             :     }
     231             : 
     232             : }
     233             : #endif // _CONNECTIVITY_ADO_ADATABASEMETADATARESULTSET_HXX_
     234             : 
     235             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10