LCOV - code coverage report
Current view: top level - dbaccess/source/core/api - resultset.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 210 487 43.1 %
Date: 2012-08-25 Functions: 43 94 45.7 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 244 1097 22.2 %

           Branch data     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                 :            : #include <resultset.hxx>
      21                 :            : #include "dbastrings.hrc"
      22                 :            : #include "apitools.hxx"
      23                 :            : #include <com/sun/star/lang/DisposedException.hpp>
      24                 :            : #include <com/sun/star/sdbc/ResultSetType.hpp>
      25                 :            : #include <cppuhelper/typeprovider.hxx>
      26                 :            : #include <comphelper/property.hxx>
      27                 :            : #include <comphelper/sequence.hxx>
      28                 :            : #include <comphelper/types.hxx>
      29                 :            : #include <tools/debug.hxx>
      30                 :            : #include <tools/diagnose_ex.h>
      31                 :            : #include <datacolumn.hxx>
      32                 :            : #include <com/sun/star/beans/PropertyAttribute.hpp>
      33                 :            : #include <connectivity/dbexception.hxx>
      34                 :            : #include <connectivity/dbtools.hxx>
      35                 :            : #include <cppuhelper/exc_hlp.hxx>
      36                 :            : #include <osl/thread.h>
      37                 :            : #include <rtl/logfile.hxx>
      38                 :            : 
      39                 :            : 
      40                 :            : using namespace ::com::sun::star::sdbc;
      41                 :            : using namespace ::com::sun::star::sdbcx;
      42                 :            : using namespace ::com::sun::star::beans;
      43                 :            : using namespace ::com::sun::star::uno;
      44                 :            : using namespace ::com::sun::star::lang;
      45                 :            : using namespace ::com::sun::star::container;
      46                 :            : using namespace ::cppu;
      47                 :            : using namespace ::osl;
      48                 :            : using namespace dbaccess;
      49                 :            : using namespace dbtools;
      50                 :            : 
      51                 :            : DBG_NAME(OResultSet)
      52                 :            : 
      53                 :         40 : OResultSet::OResultSet(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet >& _xResultSet,
      54                 :            :                        const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _xStatement,
      55                 :            :                        sal_Bool _bCaseSensitive)
      56                 :            :            :OResultSetBase(m_aMutex)
      57                 :            :            ,OPropertySetHelper(OResultSetBase::rBHelper)
      58                 :            :            ,m_xDelegatorResultSet(_xResultSet)
      59                 :            :            ,m_aWarnings( Reference< XWarningsSupplier >( _xResultSet, UNO_QUERY ) )
      60 [ +  - ][ +  - ]:         40 :            ,m_bIsBookmarkable(sal_False)
         [ +  - ][ +  - ]
      61                 :            : {
      62                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::OResultSet" );
      63                 :            :     DBG_CTOR(OResultSet, NULL);
      64                 :            : 
      65 [ +  - ][ +  - ]:         40 :     m_pColumns = new OColumns(*this, m_aMutex, _bCaseSensitive, ::std::vector< ::rtl::OUString>(), NULL,NULL);
                 [ +  - ]
      66                 :            : 
      67                 :            :     try
      68                 :            :     {
      69         [ +  - ]:         40 :         m_aStatement = _xStatement;
      70 [ +  - ][ +  - ]:         40 :         m_xDelegatorResultSetUpdate = m_xDelegatorResultSetUpdate.query( m_xDelegatorResultSet );
      71 [ +  - ][ +  - ]:         40 :         m_xDelegatorRow = m_xDelegatorRow.query( m_xDelegatorResultSet );
      72 [ +  - ][ +  - ]:         40 :         m_xDelegatorRowUpdate = m_xDelegatorRowUpdate.query( m_xDelegatorResultSet );
      73                 :            : 
      74         [ +  - ]:         40 :         Reference< XPropertySet > xSet(m_xDelegatorResultSet, UNO_QUERY);
      75 [ +  - ][ +  - ]:         40 :         xSet->getPropertyValue(PROPERTY_RESULTSETTYPE) >>= m_nResultSetType;
                 [ +  - ]
      76 [ +  - ][ +  - ]:         40 :         xSet->getPropertyValue(PROPERTY_RESULTSETCONCURRENCY) >>= m_nResultSetConcurrency;
                 [ +  - ]
      77                 :            : 
      78                 :            :         // test for Bookmarks
      79         [ +  - ]:         40 :         if (ResultSetType::FORWARD_ONLY != m_nResultSetType)
      80                 :            :         {
      81 [ +  - ][ +  - ]:         40 :             Reference <XPropertySetInfo > xInfo(xSet->getPropertySetInfo());
      82 [ +  - ][ +  - ]:         40 :             if (xInfo->hasPropertyByName(PROPERTY_ISBOOKMARKABLE))
         [ +  - ][ +  - ]
      83                 :            :             {
      84 [ +  - ][ +  - ]:         40 :                 m_bIsBookmarkable = ::comphelper::getBOOL(xSet->getPropertyValue(PROPERTY_ISBOOKMARKABLE));
         [ +  - ][ +  - ]
      85                 :            :                 OSL_ENSURE( !m_bIsBookmarkable || Reference< XRowLocate >(m_xDelegatorResultSet, UNO_QUERY).is(),
      86                 :            :                     "OResultSet::OResultSet: aggregate is inconsistent in it's bookmarkable attribute!" );
      87 [ +  - ][ +  - ]:         40 :                 m_bIsBookmarkable = m_bIsBookmarkable && Reference< XRowLocate >(m_xDelegatorResultSet, UNO_QUERY).is();
         [ +  - ][ #  # ]
                 [ +  - ]
      88                 :         40 :             }
      89         [ #  # ]:         40 :         }
      90                 :            :     }
      91         [ #  # ]:          0 :     catch(Exception&)
      92                 :            :     {
      93                 :            :     }
      94                 :         40 : }
      95                 :            : 
      96 [ +  - ][ +  - ]:         40 : OResultSet::~OResultSet()
         [ +  - ][ +  - ]
      97                 :            : {
      98                 :         40 :     m_pColumns->acquire();
      99         [ +  - ]:         40 :     m_pColumns->disposing();
     100 [ +  - ][ +  - ]:         40 :     delete m_pColumns;
     101                 :            : 
     102                 :            :     DBG_DTOR(OResultSet, NULL);
     103         [ -  + ]:         80 : }
     104                 :            : 
     105                 :            : // com::sun::star::lang::XTypeProvider
     106                 :          0 : Sequence< Type > OResultSet::getTypes() throw (RuntimeException)
     107                 :            : {
     108                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getTypes" );
     109         [ #  # ]:          0 :     OTypeCollection aTypes(::getCppuType( (const Reference< XPropertySet > *)0 ),
     110 [ #  # ][ #  # ]:          0 :                            OResultSetBase::getTypes());
                 [ #  # ]
     111                 :            : 
     112 [ #  # ][ #  # ]:          0 :     return aTypes.getTypes();
     113                 :            : }
     114                 :            : 
     115                 :          0 : Sequence< sal_Int8 > OResultSet::getImplementationId() throw (RuntimeException)
     116                 :            : {
     117                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getImplementationId" );
     118                 :            :     static OImplementationId * pId = 0;
     119         [ #  # ]:          0 :     if (! pId)
     120                 :            :     {
     121 [ #  # ][ #  # ]:          0 :         MutexGuard aGuard( Mutex::getGlobalMutex() );
     122         [ #  # ]:          0 :         if (! pId)
     123                 :            :         {
     124 [ #  # ][ #  # ]:          0 :             static OImplementationId aId;
     125                 :          0 :             pId = &aId;
     126         [ #  # ]:          0 :         }
     127                 :            :     }
     128                 :          0 :     return pId->getImplementationId();
     129                 :            : }
     130                 :            : 
     131                 :            : // com::sun::star::uno::XInterface
     132                 :        520 : Any OResultSet::queryInterface( const Type & rType ) throw (RuntimeException)
     133                 :            : {
     134                 :            :     //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::queryInterface" );
     135                 :        520 :     Any aIface = OResultSetBase::queryInterface( rType );
     136         [ +  + ]:        520 :     if (!aIface.hasValue())
     137                 :            :         aIface = ::cppu::queryInterface(
     138                 :            :                     rType,
     139         [ +  - ]:         80 :                     static_cast< XPropertySet * >( this ));
     140                 :            : 
     141                 :        520 :     return aIface;
     142                 :            : }
     143                 :            : 
     144                 :       1350 : void OResultSet::acquire() throw ()
     145                 :            : {
     146                 :       1350 :     OResultSetBase::acquire();
     147                 :       1350 : }
     148                 :            : 
     149                 :       1310 : void OResultSet::release() throw ()
     150                 :            : {
     151                 :       1310 :     OResultSetBase::release();
     152                 :       1310 : }
     153                 :            : 
     154                 :            : 
     155                 :            : // OResultSetBase
     156                 :         40 : void OResultSet::disposing()
     157                 :            : {
     158                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::disposing" );
     159         [ +  - ]:         40 :     OPropertySetHelper::disposing();
     160                 :            : 
     161         [ +  - ]:         40 :     MutexGuard aGuard(m_aMutex);
     162                 :            : 
     163                 :            :     // free the columns
     164         [ +  - ]:         40 :     m_pColumns->disposing();
     165                 :            : 
     166                 :            :     // close the pending result set
     167 [ +  - ][ +  - ]:         40 :     Reference< XCloseable > (m_xDelegatorResultSet, UNO_QUERY)->close();
                 [ +  - ]
     168                 :            : 
     169         [ +  - ]:         40 :     m_xDelegatorResultSet = NULL;
     170         [ +  - ]:         40 :     m_xDelegatorRow = NULL;
     171         [ +  - ]:         40 :     m_xDelegatorRowUpdate = NULL;
     172                 :            : 
     173 [ +  - ][ +  - ]:         40 :     m_aStatement = Reference< XInterface >();
     174                 :         40 : }
     175                 :            : 
     176                 :            : // XCloseable
     177                 :          0 : void OResultSet::close(void) throw( SQLException, RuntimeException )
     178                 :            : {
     179                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::close" );
     180                 :            :     {
     181         [ #  # ]:          0 :         MutexGuard aGuard( m_aMutex );
     182 [ #  # ][ #  # ]:          0 :         ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     183                 :            :     }
     184                 :          0 :     dispose();
     185                 :          0 : }
     186                 :            : 
     187                 :            : // XServiceInfo
     188                 :          0 : rtl::OUString OResultSet::getImplementationName(  ) throw(RuntimeException)
     189                 :            : {
     190                 :            :     //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getImplementationName" );
     191                 :          0 :     return rtl::OUString("com.sun.star.sdb.OResultSet");
     192                 :            : }
     193                 :            : 
     194                 :          0 : sal_Bool OResultSet::supportsService( const ::rtl::OUString& _rServiceName ) throw (RuntimeException)
     195                 :            : {
     196                 :            :     //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::supportsService" );
     197 [ #  # ][ #  # ]:          0 :     return ::comphelper::findValue(getSupportedServiceNames(), _rServiceName, sal_True).getLength() != 0;
     198                 :            : }
     199                 :            : 
     200                 :          0 : Sequence< ::rtl::OUString > OResultSet::getSupportedServiceNames(  ) throw (RuntimeException)
     201                 :            : {
     202                 :            :     //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getSupportedServiceNames" );
     203                 :          0 :     Sequence< ::rtl::OUString > aSNS( 2 );
     204 [ #  # ][ #  # ]:          0 :     aSNS[0] = SERVICE_SDBC_RESULTSET;
     205 [ #  # ][ #  # ]:          0 :     aSNS[1] = SERVICE_SDB_RESULTSET;
     206                 :          0 :     return aSNS;
     207                 :            : }
     208                 :            : 
     209                 :            : // com::sun::star::beans::XPropertySet
     210                 :         40 : Reference< XPropertySetInfo > OResultSet::getPropertySetInfo() throw (RuntimeException)
     211                 :            : {
     212                 :            :     //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getPropertySetInfo" );
     213                 :         40 :     return createPropertySetInfo( getInfoHelper() ) ;
     214                 :            : }
     215                 :            : 
     216                 :            : // comphelper::OPropertyArrayUsageHelper
     217                 :         40 : ::cppu::IPropertyArrayHelper* OResultSet::createArrayHelper( ) const
     218                 :            : {
     219                 :            :     //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::createArrayHelper" );
     220 [ +  - ][ +  - ]:         40 :     BEGIN_PROPERTY_HELPER(6)
     221 [ +  - ][ +  - ]:         40 :         DECL_PROP1(CURSORNAME,              ::rtl::OUString,    READONLY);
     222 [ +  - ][ +  - ]:         40 :         DECL_PROP0(FETCHDIRECTION,          sal_Int32);
     223 [ +  - ][ +  - ]:         40 :         DECL_PROP0(FETCHSIZE,               sal_Int32);
     224 [ +  - ][ +  - ]:         40 :         DECL_PROP1_BOOL(ISBOOKMARKABLE,         READONLY);
     225 [ +  - ][ +  - ]:         40 :         DECL_PROP1(RESULTSETCONCURRENCY,    sal_Int32,      READONLY);
     226 [ +  - ][ +  - ]:         40 :         DECL_PROP1(RESULTSETTYPE,           sal_Int32,      READONLY);
     227 [ +  - ][ +  - ]:         40 :     END_PROPERTY_HELPER();
     228                 :            : }
     229                 :            : 
     230                 :            : // cppu::OPropertySetHelper
     231                 :        120 : ::cppu::IPropertyArrayHelper& OResultSet::getInfoHelper()
     232                 :            : {
     233                 :            :     //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getInfoHelper" );
     234                 :        120 :     return *getArrayHelper();
     235                 :            : }
     236                 :            : 
     237                 :          0 : sal_Bool OResultSet::convertFastPropertyValue(Any & rConvertedValue, Any & rOldValue, sal_Int32 nHandle, const Any& rValue ) throw( IllegalArgumentException  )
     238                 :            : {
     239                 :            :     //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::convertFastPropertyValue" );
     240                 :            :     // be lazy ...
     241                 :          0 :     rConvertedValue = rValue;
     242                 :          0 :     getFastPropertyValue( rOldValue, nHandle );
     243                 :          0 :     return sal_True;
     244                 :            : }
     245                 :            : 
     246                 :          0 : void OResultSet::setFastPropertyValue_NoBroadcast( sal_Int32 nHandle, const Any& rValue ) throw (Exception)
     247                 :            : {
     248                 :            :     //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::setFastPropertyValue_NoBroadcast" );
     249                 :            :     // set it for the driver result set
     250         [ #  # ]:          0 :     Reference< XPropertySet > xSet(m_xDelegatorResultSet, UNO_QUERY);
     251      [ #  #  # ]:          0 :     switch (nHandle)
     252                 :            :     {
     253                 :            :         case PROPERTY_ID_FETCHDIRECTION:
     254 [ #  # ][ #  # ]:          0 :             xSet->setPropertyValue(PROPERTY_FETCHDIRECTION, rValue);
                 [ #  # ]
     255                 :          0 :             break;
     256                 :            :         case PROPERTY_ID_FETCHSIZE:
     257 [ #  # ][ #  # ]:          0 :             xSet->setPropertyValue(PROPERTY_FETCHSIZE, rValue);
                 [ #  # ]
     258                 :          0 :             break;
     259                 :            :         default:
     260                 :            :             OSL_FAIL("unknown Property");
     261                 :          0 :     }
     262                 :          0 : }
     263                 :            : 
     264                 :         40 : void OResultSet::getFastPropertyValue( Any& rValue, sal_Int32 nHandle ) const
     265                 :            : {
     266                 :            :     //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getFastPropertyValue" );
     267         [ +  - ]:         40 :     switch (nHandle)
     268                 :            :     {
     269                 :            :         case PROPERTY_ID_ISBOOKMARKABLE:
     270                 :            :         {
     271                 :         40 :             sal_Bool bVal = m_bIsBookmarkable;
     272         [ +  - ]:         40 :             rValue.setValue(&bVal, getBooleanCppuType());
     273                 :         40 :         }   break;
     274                 :            :         default:
     275                 :            :         {
     276                 :            :             // get the property name
     277                 :          0 :             ::rtl::OUString aPropName;
     278                 :            :             sal_Int16 nAttributes;
     279         [ #  # ]:          0 :             const_cast<OResultSet*>(this)->getInfoHelper().
     280         [ #  # ]:          0 :                 fillPropertyMembersByHandle(&aPropName, &nAttributes, nHandle);
     281                 :            :             OSL_ENSURE(!aPropName.isEmpty(), "property not found?");
     282                 :            : 
     283                 :            :             // now read the value
     284 [ #  # ][ #  # ]:          0 :             rValue = Reference< XPropertySet >(m_xDelegatorResultSet, UNO_QUERY)->getPropertyValue(aPropName);
                 [ #  # ]
     285                 :            :         }
     286                 :            :     }
     287                 :         40 : }
     288                 :            : 
     289                 :            : // XWarningsSupplier
     290                 :          2 : Any OResultSet::getWarnings(void) throw( SQLException, RuntimeException )
     291                 :            : {
     292                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getWarnings" );
     293         [ +  - ]:          2 :     MutexGuard aGuard(m_aMutex);
     294         [ +  - ]:          2 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     295 [ +  - ][ +  - ]:          2 :     return m_aWarnings.getWarnings();
     296                 :            : }
     297                 :            : 
     298                 :          0 : void OResultSet::clearWarnings(void) throw( SQLException, RuntimeException )
     299                 :            : {
     300                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::clearWarnings" );
     301         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     302         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     303 [ #  # ][ #  # ]:          0 :     m_aWarnings.clearWarnings();
     304                 :          0 : }
     305                 :            : 
     306                 :            : // ::com::sun::star::sdbc::XResultSetMetaDataSupplier
     307                 :         80 : Reference< XResultSetMetaData > OResultSet::getMetaData(void) throw( SQLException, RuntimeException )
     308                 :            : {
     309                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getMetaData" );
     310         [ +  - ]:         80 :     MutexGuard aGuard(m_aMutex);
     311         [ +  - ]:         80 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     312                 :            : 
     313 [ +  - ][ +  - ]:         80 :     return Reference< XResultSetMetaDataSupplier >(m_xDelegatorResultSet, UNO_QUERY)->getMetaData();
         [ +  - ][ +  - ]
     314                 :            : }
     315                 :            : 
     316                 :            : // ::com::sun::star::sdbc::XColumnLocate
     317                 :          0 : sal_Int32 OResultSet::findColumn(const rtl::OUString& columnName) throw( SQLException, RuntimeException )
     318                 :            : {
     319                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::findColumn" );
     320         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     321         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     322                 :            : 
     323 [ #  # ][ #  # ]:          0 :     return Reference< XColumnLocate >(m_xDelegatorResultSet, UNO_QUERY)->findColumn(columnName);
         [ #  # ][ #  # ]
     324                 :            : }
     325                 :            : 
     326                 :            : namespace
     327                 :            : {
     328                 :          0 :     static Reference< XDatabaseMetaData > lcl_getDBMetaDataFromStatement_nothrow( const Reference< XInterface >& _rxStatement )
     329                 :            :     {
     330                 :          0 :         Reference< XDatabaseMetaData > xDBMetaData;
     331                 :            :         try
     332                 :            :         {
     333         [ #  # ]:          0 :             Reference< XStatement > xStatement( _rxStatement, UNO_QUERY );
     334         [ #  # ]:          0 :             Reference< XPreparedStatement > xPreparedStatement( _rxStatement, UNO_QUERY );
     335                 :          0 :             Reference< XConnection > xConn;
     336         [ #  # ]:          0 :             if ( xStatement.is() )
     337 [ #  # ][ #  # ]:          0 :                 xConn = xStatement->getConnection();
                 [ #  # ]
     338         [ #  # ]:          0 :             else if ( xPreparedStatement.is() )
     339 [ #  # ][ #  # ]:          0 :                 xConn = xPreparedStatement->getConnection();
                 [ #  # ]
     340         [ #  # ]:          0 :             if ( xConn.is() )
     341 [ #  # ][ #  # ]:          0 :                 xDBMetaData = xConn->getMetaData();
         [ #  # ][ #  # ]
     342                 :            :         }
     343         [ #  # ]:          0 :         catch( const Exception& )
     344                 :            :         {
     345                 :            :             DBG_UNHANDLED_EXCEPTION();
     346                 :            :         }
     347                 :          0 :         return xDBMetaData;
     348                 :            :     }
     349                 :            : }
     350                 :            : 
     351                 :            : // ::com::sun::star::sdbcx::XColumnsSupplier
     352                 :          0 : Reference< ::com::sun::star::container::XNameAccess > OResultSet::getColumns(void) throw( RuntimeException )
     353                 :            : {
     354                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getColumns" );
     355         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     356         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     357                 :            : 
     358                 :            :     // do we have to populate the columns
     359         [ #  # ]:          0 :     if (!m_pColumns->isInitialized())
     360                 :            :     {
     361                 :            :         // get the metadata
     362 [ #  # ][ #  # ]:          0 :         Reference< XResultSetMetaData > xMetaData = Reference< XResultSetMetaDataSupplier >(m_xDelegatorResultSet, UNO_QUERY)->getMetaData();
                 [ #  # ]
     363                 :            : 
     364                 :          0 :         sal_Int32 nColCount = 0;
     365                 :            :         // do we have columns
     366                 :            :         try
     367                 :            :         {
     368 [ #  # ][ #  # ]:          0 :             Reference< XDatabaseMetaData > xDBMetaData( lcl_getDBMetaDataFromStatement_nothrow( getStatement() ) );
     369 [ #  # ][ #  # ]:          0 :             nColCount = xMetaData->getColumnCount();
     370                 :            : 
     371         [ #  # ]:          0 :             for ( sal_Int32 i = 0; i < nColCount; ++i)
     372                 :            :             {
     373                 :            :                 // retrieve the name of the column
     374 [ #  # ][ #  # ]:          0 :                 rtl::OUString sName = xMetaData->getColumnName(i + 1);
     375         [ #  # ]:          0 :                 ODataColumn* pColumn = new ODataColumn(xMetaData, m_xDelegatorRow, m_xDelegatorRowUpdate, i + 1, xDBMetaData);
     376                 :            : 
     377                 :            :                 // don't silently assume that the name is unique - result set implementations
     378                 :            :                 // are allowed to return duplicate names, but we are required to have
     379                 :            :                 // unique column names
     380 [ #  # ][ #  # ]:          0 :                 if ( m_pColumns->hasByName( sName ) )
     381 [ #  # ][ #  # ]:          0 :                     sName = ::dbtools::createUniqueName( m_pColumns, sName );
                 [ #  # ]
     382                 :            : 
     383         [ #  # ]:          0 :                 m_pColumns->append( sName, pColumn );
     384         [ #  # ]:          0 :             }
     385                 :            :         }
     386         [ #  # ]:          0 :         catch ( const SQLException& )
     387                 :            :         {
     388                 :            :             DBG_UNHANDLED_EXCEPTION();
     389                 :            :         }
     390                 :          0 :         m_pColumns->setInitialized();
     391                 :            : 
     392                 :            :     #if OSL_DEBUG_LEVEL > 0
     393                 :            :         // some sanity checks. Especially in case we auto-adjusted the column names above,
     394                 :            :         // this might be reasonable
     395                 :            :         try
     396                 :            :         {
     397                 :            :             const Reference< XNameAccess > xColNames( static_cast< XNameAccess* >( m_pColumns ), UNO_SET_THROW );
     398                 :            :             const Sequence< ::rtl::OUString > aNames( xColNames->getElementNames() );
     399                 :            :             OSL_POSTCOND( aNames.getLength() == nColCount,
     400                 :            :                 "OResultSet::getColumns: invalid column count!" );
     401                 :            :             for (   const ::rtl::OUString* pName = aNames.getConstArray();
     402                 :            :                     pName != aNames.getConstArray() + aNames.getLength();
     403                 :            :                     ++pName
     404                 :            :                 )
     405                 :            :             {
     406                 :            :                 Reference< XPropertySet > xColProps( xColNames->getByName( *pName ), UNO_QUERY_THROW );
     407                 :            :                 ::rtl::OUString sName;
     408                 :            :                 OSL_VERIFY( xColProps->getPropertyValue( PROPERTY_NAME ) >>= sName );
     409                 :            :                 OSL_POSTCOND( sName == *pName, "OResultSet::getColumns: invalid column name!" );
     410                 :            :             }
     411                 :            : 
     412                 :            :         }
     413                 :            :         catch( const Exception& )
     414                 :            :         {
     415                 :            :             DBG_UNHANDLED_EXCEPTION();
     416                 :            :         }
     417                 :            :     #endif
     418                 :            :     }
     419 [ #  # ][ #  # ]:          0 :     return m_pColumns;
                 [ #  # ]
     420                 :            : }
     421                 :            : 
     422                 :            : // ::com::sun::star::sdbc::XRow
     423                 :       5728 : sal_Bool OResultSet::wasNull(void) throw( SQLException, RuntimeException )
     424                 :            : {
     425                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::wasNull" );
     426         [ +  - ]:       5728 :     MutexGuard aGuard(m_aMutex);
     427         [ +  - ]:       5728 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     428                 :            : 
     429 [ +  - ][ +  - ]:       5728 :     return m_xDelegatorRow->wasNull();
                 [ +  - ]
     430                 :            : }
     431                 :            : 
     432                 :       5560 : rtl::OUString OResultSet::getString(sal_Int32 columnIndex) throw( SQLException, RuntimeException )
     433                 :            : {
     434                 :            :     //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getString" );
     435         [ +  - ]:       5560 :     MutexGuard aGuard(m_aMutex);
     436         [ +  - ]:       5560 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     437                 :            : 
     438 [ +  - ][ +  - ]:       5560 :     return m_xDelegatorRow->getString(columnIndex);
                 [ +  - ]
     439                 :            : }
     440                 :            : 
     441                 :         56 : sal_Bool OResultSet::getBoolean(sal_Int32 columnIndex) throw( SQLException, RuntimeException )
     442                 :            : {
     443                 :            :     //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getBoolean" );
     444         [ +  - ]:         56 :     MutexGuard aGuard(m_aMutex);
     445         [ +  - ]:         56 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     446                 :            : 
     447 [ +  - ][ +  - ]:         56 :     return m_xDelegatorRow->getBoolean(columnIndex);
                 [ +  - ]
     448                 :            : }
     449                 :            : 
     450                 :          0 : sal_Int8 OResultSet::getByte(sal_Int32 columnIndex) throw( SQLException, RuntimeException )
     451                 :            : {
     452                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getByte" );
     453         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     454         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     455                 :            : 
     456 [ #  # ][ #  # ]:          0 :     return m_xDelegatorRow->getByte(columnIndex);
                 [ #  # ]
     457                 :            : }
     458                 :            : 
     459                 :          0 : sal_Int16 OResultSet::getShort(sal_Int32 columnIndex) throw( SQLException, RuntimeException )
     460                 :            : {
     461                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getShort" );
     462         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     463         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     464                 :            : 
     465 [ #  # ][ #  # ]:          0 :     return m_xDelegatorRow->getShort(columnIndex);
                 [ #  # ]
     466                 :            : }
     467                 :            : 
     468                 :          0 : sal_Int32 OResultSet::getInt(sal_Int32 columnIndex) throw( SQLException, RuntimeException )
     469                 :            : {
     470                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getInt" );
     471         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     472         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     473                 :            : 
     474 [ #  # ][ #  # ]:          0 :     return m_xDelegatorRow->getInt(columnIndex);
                 [ #  # ]
     475                 :            : }
     476                 :            : 
     477                 :          0 : sal_Int64 OResultSet::getLong(sal_Int32 columnIndex) throw( SQLException, RuntimeException )
     478                 :            : {
     479                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getLong" );
     480         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     481         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     482                 :            : 
     483 [ #  # ][ #  # ]:          0 :     return m_xDelegatorRow->getLong(columnIndex);
                 [ #  # ]
     484                 :            : }
     485                 :            : 
     486                 :          0 : float OResultSet::getFloat(sal_Int32 columnIndex) throw( SQLException, RuntimeException )
     487                 :            : {
     488                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getFloat" );
     489         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     490         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     491                 :            : 
     492 [ #  # ][ #  # ]:          0 :     return m_xDelegatorRow->getFloat(columnIndex);
                 [ #  # ]
     493                 :            : }
     494                 :            : 
     495                 :          0 : double OResultSet::getDouble(sal_Int32 columnIndex) throw( SQLException, RuntimeException )
     496                 :            : {
     497                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getDouble" );
     498         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     499         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     500                 :            : 
     501 [ #  # ][ #  # ]:          0 :     return m_xDelegatorRow->getDouble(columnIndex);
                 [ #  # ]
     502                 :            : }
     503                 :            : 
     504                 :          0 : Sequence< sal_Int8 > OResultSet::getBytes(sal_Int32 columnIndex) throw( SQLException, RuntimeException )
     505                 :            : {
     506                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getBytes" );
     507         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     508         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     509                 :            : 
     510 [ #  # ][ #  # ]:          0 :     return m_xDelegatorRow->getBytes(columnIndex);
                 [ #  # ]
     511                 :            : }
     512                 :            : 
     513                 :        112 : ::com::sun::star::util::Date OResultSet::getDate(sal_Int32 columnIndex) throw( SQLException, RuntimeException )
     514                 :            : {
     515                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getDate" );
     516         [ +  - ]:        112 :     MutexGuard aGuard(m_aMutex);
     517         [ +  - ]:        112 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     518                 :            : 
     519 [ +  - ][ +  - ]:        112 :     return m_xDelegatorRow->getDate(columnIndex);
                 [ +  - ]
     520                 :            : }
     521                 :            : 
     522                 :          0 : ::com::sun::star::util::Time OResultSet::getTime(sal_Int32 columnIndex) throw( SQLException, RuntimeException )
     523                 :            : {
     524                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getTime" );
     525         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     526         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     527                 :            : 
     528 [ #  # ][ #  # ]:          0 :     return m_xDelegatorRow->getTime(columnIndex);
                 [ #  # ]
     529                 :            : }
     530                 :            : 
     531                 :          0 : ::com::sun::star::util::DateTime OResultSet::getTimestamp(sal_Int32 columnIndex) throw( SQLException, RuntimeException )
     532                 :            : {
     533                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getTimestamp" );
     534         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     535         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     536                 :            : 
     537 [ #  # ][ #  # ]:          0 :     return m_xDelegatorRow->getTimestamp(columnIndex);
                 [ #  # ]
     538                 :            : }
     539                 :            : 
     540                 :          0 : Reference< ::com::sun::star::io::XInputStream >  OResultSet::getBinaryStream(sal_Int32 columnIndex) throw( SQLException, RuntimeException )
     541                 :            : {
     542                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getBinaryStream" );
     543         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     544         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     545                 :            : 
     546 [ #  # ][ #  # ]:          0 :     return m_xDelegatorRow->getBinaryStream(columnIndex);
                 [ #  # ]
     547                 :            : }
     548                 :            : 
     549                 :          0 : Reference< ::com::sun::star::io::XInputStream >  OResultSet::getCharacterStream(sal_Int32 columnIndex) throw( SQLException, RuntimeException )
     550                 :            : {
     551                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getCharacterStream" );
     552         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     553         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     554                 :            : 
     555 [ #  # ][ #  # ]:          0 :     return m_xDelegatorRow->getCharacterStream(columnIndex);
                 [ #  # ]
     556                 :            : }
     557                 :            : 
     558                 :          0 : Any OResultSet::getObject(sal_Int32 columnIndex, const Reference< ::com::sun::star::container::XNameAccess > & typeMap) throw( SQLException, RuntimeException )
     559                 :            : {
     560                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getObject" );
     561         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     562         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     563                 :            : 
     564 [ #  # ][ #  # ]:          0 :     return m_xDelegatorRow->getObject(columnIndex, typeMap);
                 [ #  # ]
     565                 :            : }
     566                 :            : 
     567                 :          0 : Reference< XRef >  OResultSet::getRef(sal_Int32 columnIndex) throw( SQLException, RuntimeException )
     568                 :            : {
     569                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getRef" );
     570         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     571         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     572                 :            : 
     573 [ #  # ][ #  # ]:          0 :     return m_xDelegatorRow->getRef(columnIndex);
                 [ #  # ]
     574                 :            : }
     575                 :            : 
     576                 :          0 : Reference< XBlob >  OResultSet::getBlob(sal_Int32 columnIndex) throw( SQLException, RuntimeException )
     577                 :            : {
     578                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getBlob" );
     579         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     580         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     581                 :            : 
     582 [ #  # ][ #  # ]:          0 :     return m_xDelegatorRow->getBlob(columnIndex);
                 [ #  # ]
     583                 :            : }
     584                 :            : 
     585                 :          0 : Reference< XClob >  OResultSet::getClob(sal_Int32 columnIndex) throw( SQLException, RuntimeException )
     586                 :            : {
     587                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getClob" );
     588         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     589         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     590                 :            : 
     591 [ #  # ][ #  # ]:          0 :     return m_xDelegatorRow->getClob(columnIndex);
                 [ #  # ]
     592                 :            : }
     593                 :            : 
     594                 :          0 : Reference< XArray >  OResultSet::getArray(sal_Int32 columnIndex) throw( SQLException, RuntimeException )
     595                 :            : {
     596                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getArray" );
     597         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     598         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     599                 :            : 
     600 [ #  # ][ #  # ]:          0 :     return m_xDelegatorRow->getArray(columnIndex);
                 [ #  # ]
     601                 :            : }
     602                 :            : 
     603                 :            : // ::com::sun::star::sdbc::XRowUpdate
     604                 :          0 : void OResultSet::updateNull(sal_Int32 columnIndex) throw( SQLException, RuntimeException )
     605                 :            : {
     606                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::updateNull" );
     607         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     608         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     609                 :            : 
     610         [ #  # ]:          0 :     checkReadOnly();
     611                 :            : 
     612 [ #  # ][ #  # ]:          0 :     m_xDelegatorRowUpdate->updateNull(columnIndex);
                 [ #  # ]
     613                 :          0 : }
     614                 :            : 
     615                 :          0 : void OResultSet::updateBoolean(sal_Int32 columnIndex, sal_Bool x) throw( SQLException, RuntimeException )
     616                 :            : {
     617                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::updateBoolean" );
     618         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     619         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     620                 :            : 
     621         [ #  # ]:          0 :     checkReadOnly();
     622                 :            : 
     623 [ #  # ][ #  # ]:          0 :     m_xDelegatorRowUpdate->updateBoolean(columnIndex, x);
                 [ #  # ]
     624                 :          0 : }
     625                 :            : 
     626                 :          0 : void OResultSet::updateByte(sal_Int32 columnIndex, sal_Int8 x) throw( SQLException, RuntimeException )
     627                 :            : {
     628                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::updateByte" );
     629         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     630         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     631                 :            : 
     632         [ #  # ]:          0 :     checkReadOnly();
     633                 :            : 
     634 [ #  # ][ #  # ]:          0 :     m_xDelegatorRowUpdate->updateByte(columnIndex, x);
                 [ #  # ]
     635                 :          0 : }
     636                 :            : 
     637                 :          0 : void OResultSet::updateShort(sal_Int32 columnIndex, sal_Int16 x) throw( SQLException, RuntimeException )
     638                 :            : {
     639                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::updateShort" );
     640         [ #  # ]:          0 :         MutexGuard aGuard(m_aMutex);
     641         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     642                 :            : 
     643         [ #  # ]:          0 :     checkReadOnly();
     644                 :            : 
     645 [ #  # ][ #  # ]:          0 :     m_xDelegatorRowUpdate->updateShort(columnIndex, x);
                 [ #  # ]
     646                 :          0 : }
     647                 :            : 
     648                 :          0 : void OResultSet::updateInt(sal_Int32 columnIndex, sal_Int32 x) throw( SQLException, RuntimeException )
     649                 :            : {
     650                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::updateInt" );
     651         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     652         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     653                 :            : 
     654         [ #  # ]:          0 :     checkReadOnly();
     655                 :            : 
     656 [ #  # ][ #  # ]:          0 :     m_xDelegatorRowUpdate->updateInt(columnIndex, x);
                 [ #  # ]
     657                 :          0 : }
     658                 :            : 
     659                 :          0 : void OResultSet::updateLong(sal_Int32 columnIndex, sal_Int64 x) throw( SQLException, RuntimeException )
     660                 :            : {
     661                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::updateLong" );
     662         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     663         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     664                 :            : 
     665         [ #  # ]:          0 :     checkReadOnly();
     666                 :            : 
     667 [ #  # ][ #  # ]:          0 :     m_xDelegatorRowUpdate->updateLong(columnIndex, x);
                 [ #  # ]
     668                 :          0 : }
     669                 :            : 
     670                 :          0 : void OResultSet::updateFloat(sal_Int32 columnIndex, float x) throw( SQLException, RuntimeException )
     671                 :            : {
     672                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::updateFloat" );
     673         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     674         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     675                 :            : 
     676         [ #  # ]:          0 :     checkReadOnly();
     677                 :            : 
     678 [ #  # ][ #  # ]:          0 :     m_xDelegatorRowUpdate->updateFloat(columnIndex, x);
                 [ #  # ]
     679                 :          0 : }
     680                 :            : 
     681                 :          0 : void OResultSet::updateDouble(sal_Int32 columnIndex, double x) throw( SQLException, RuntimeException )
     682                 :            : {
     683                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::updateDouble" );
     684         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     685         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     686                 :            : 
     687         [ #  # ]:          0 :     checkReadOnly();
     688                 :            : 
     689 [ #  # ][ #  # ]:          0 :     m_xDelegatorRowUpdate->updateDouble(columnIndex, x);
                 [ #  # ]
     690                 :          0 : }
     691                 :            : 
     692                 :         10 : void OResultSet::updateString(sal_Int32 columnIndex, const rtl::OUString& x) throw( SQLException, RuntimeException )
     693                 :            : {
     694                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::updateString" );
     695         [ +  - ]:         10 :     MutexGuard aGuard(m_aMutex);
     696         [ +  - ]:         10 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     697                 :            : 
     698         [ +  - ]:         10 :     checkReadOnly();
     699                 :            : 
     700 [ +  - ][ +  - ]:         10 :     m_xDelegatorRowUpdate->updateString(columnIndex, x);
                 [ +  - ]
     701                 :         10 : }
     702                 :            : 
     703                 :          0 : void OResultSet::updateBytes(sal_Int32 columnIndex, const Sequence< sal_Int8 >& x) throw( SQLException, RuntimeException )
     704                 :            : {
     705                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::updateBytes" );
     706         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     707         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     708                 :            : 
     709         [ #  # ]:          0 :     checkReadOnly();
     710                 :            : 
     711 [ #  # ][ #  # ]:          0 :     m_xDelegatorRowUpdate->updateBytes(columnIndex, x);
                 [ #  # ]
     712                 :          0 : }
     713                 :            : 
     714                 :          0 : void OResultSet::updateDate(sal_Int32 columnIndex, const ::com::sun::star::util::Date& x) throw( SQLException, RuntimeException )
     715                 :            : {
     716                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::updateDate" );
     717         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     718         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     719                 :            : 
     720         [ #  # ]:          0 :     checkReadOnly();
     721                 :            : 
     722 [ #  # ][ #  # ]:          0 :     m_xDelegatorRowUpdate->updateDate(columnIndex, x);
                 [ #  # ]
     723                 :          0 : }
     724                 :            : 
     725                 :          0 : void OResultSet::updateTime(sal_Int32 columnIndex, const ::com::sun::star::util::Time& x) throw( SQLException, RuntimeException )
     726                 :            : {
     727                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::updateTime" );
     728         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     729         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     730                 :            : 
     731         [ #  # ]:          0 :     checkReadOnly();
     732                 :            : 
     733 [ #  # ][ #  # ]:          0 :     m_xDelegatorRowUpdate->updateTime(columnIndex, x);
                 [ #  # ]
     734                 :          0 : }
     735                 :            : 
     736                 :          0 : void OResultSet::updateTimestamp(sal_Int32 columnIndex, const ::com::sun::star::util::DateTime& x) throw( SQLException, RuntimeException )
     737                 :            : {
     738                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::updateTimestamp" );
     739         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     740         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     741                 :            : 
     742         [ #  # ]:          0 :     checkReadOnly();
     743                 :            : 
     744 [ #  # ][ #  # ]:          0 :     m_xDelegatorRowUpdate->updateTimestamp(columnIndex, x);
                 [ #  # ]
     745                 :          0 : }
     746                 :            : 
     747                 :          0 : void OResultSet::updateBinaryStream(sal_Int32 columnIndex, const Reference< ::com::sun::star::io::XInputStream > & x, sal_Int32 length) throw( SQLException, RuntimeException )
     748                 :            : {
     749                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::updateBinaryStream" );
     750         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     751         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     752                 :            : 
     753         [ #  # ]:          0 :     checkReadOnly();
     754                 :            : 
     755 [ #  # ][ #  # ]:          0 :     m_xDelegatorRowUpdate->updateBinaryStream(columnIndex, x, length);
                 [ #  # ]
     756                 :          0 : }
     757                 :            : 
     758                 :          0 : void OResultSet::updateCharacterStream(sal_Int32 columnIndex, const Reference< ::com::sun::star::io::XInputStream > & x, sal_Int32 length) throw( SQLException, RuntimeException )
     759                 :            : {
     760                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::updateCharacterStream" );
     761         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     762         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     763                 :            : 
     764         [ #  # ]:          0 :     checkReadOnly();
     765                 :            : 
     766 [ #  # ][ #  # ]:          0 :     m_xDelegatorRowUpdate->updateCharacterStream(columnIndex, x, length);
                 [ #  # ]
     767                 :          0 : }
     768                 :            : 
     769                 :          0 : void OResultSet::updateNumericObject(sal_Int32 columnIndex, const Any& x, sal_Int32 scale) throw( SQLException, RuntimeException )
     770                 :            : {
     771                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::updateNumericObject" );
     772         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     773         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     774                 :            : 
     775         [ #  # ]:          0 :     checkReadOnly();
     776                 :            : 
     777 [ #  # ][ #  # ]:          0 :     m_xDelegatorRowUpdate->updateNumericObject(columnIndex, x, scale);
                 [ #  # ]
     778                 :          0 : }
     779                 :            : 
     780                 :          0 : void OResultSet::updateObject(sal_Int32 columnIndex, const Any& x) throw( SQLException, RuntimeException )
     781                 :            : {
     782                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::updateObject" );
     783         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     784         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     785                 :            : 
     786         [ #  # ]:          0 :     checkReadOnly();
     787                 :            : 
     788 [ #  # ][ #  # ]:          0 :     m_xDelegatorRowUpdate->updateObject(columnIndex, x);
                 [ #  # ]
     789                 :          0 : }
     790                 :            : 
     791                 :            : // ::com::sun::star::sdbc::XResultSet
     792                 :        296 : sal_Bool OResultSet::next(void) throw( SQLException, RuntimeException )
     793                 :            : {
     794                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::next" );
     795         [ +  - ]:        296 :     MutexGuard aGuard(m_aMutex);
     796         [ +  - ]:        296 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     797                 :            : 
     798 [ +  - ][ +  - ]:        296 :     return m_xDelegatorResultSet->next();
                 [ +  - ]
     799                 :            : }
     800                 :            : 
     801                 :          0 : sal_Bool OResultSet::isBeforeFirst(void) throw( SQLException, RuntimeException )
     802                 :            : {
     803                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::isBeforeFirst" );
     804         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     805         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     806                 :            : 
     807 [ #  # ][ #  # ]:          0 :     return m_xDelegatorResultSet->isBeforeFirst();
                 [ #  # ]
     808                 :            : }
     809                 :            : 
     810                 :          0 : sal_Bool OResultSet::isAfterLast(void) throw( SQLException, RuntimeException )
     811                 :            : {
     812                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::isAfterLast" );
     813         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     814         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     815                 :            : 
     816 [ #  # ][ #  # ]:          0 :     return m_xDelegatorResultSet->isAfterLast();
                 [ #  # ]
     817                 :            : }
     818                 :            : 
     819                 :          0 : sal_Bool OResultSet::isFirst(void) throw( SQLException, RuntimeException )
     820                 :            : {
     821                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::isFirst" );
     822         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     823         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     824                 :            : 
     825 [ #  # ][ #  # ]:          0 :     return m_xDelegatorResultSet->isFirst();
                 [ #  # ]
     826                 :            : }
     827                 :            : 
     828                 :          0 : sal_Bool OResultSet::isLast(void) throw( SQLException, RuntimeException )
     829                 :            : {
     830                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::isLast" );
     831         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     832         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     833                 :            : 
     834 [ #  # ][ #  # ]:          0 :     return m_xDelegatorResultSet->isLast();
                 [ #  # ]
     835                 :            : }
     836                 :            : 
     837                 :         48 : void OResultSet::beforeFirst(void) throw( SQLException, RuntimeException )
     838                 :            : {
     839                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::beforeFirst" );
     840         [ +  - ]:         48 :     MutexGuard aGuard(m_aMutex);
     841         [ +  - ]:         48 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     842                 :            : 
     843 [ +  - ][ +  - ]:         48 :     m_xDelegatorResultSet->beforeFirst();
                 [ +  - ]
     844                 :         48 : }
     845                 :            : 
     846                 :         10 : void OResultSet::afterLast(void) throw( SQLException, RuntimeException )
     847                 :            : {
     848                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::afterLast" );
     849         [ +  - ]:         10 :     MutexGuard aGuard(m_aMutex);
     850         [ +  - ]:         10 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     851                 :            : 
     852 [ +  - ][ +  - ]:         10 :     m_xDelegatorResultSet->afterLast();
                 [ +  - ]
     853                 :         10 : }
     854                 :            : 
     855                 :         50 : sal_Bool OResultSet::first(void) throw( SQLException, RuntimeException )
     856                 :            : {
     857                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::first" );
     858         [ +  - ]:         50 :     MutexGuard aGuard(m_aMutex);
     859         [ +  - ]:         50 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     860                 :            : 
     861 [ +  - ][ +  - ]:         50 :     return m_xDelegatorResultSet->first();
                 [ +  - ]
     862                 :            : }
     863                 :            : 
     864                 :          8 : sal_Bool OResultSet::last(void) throw( SQLException, RuntimeException )
     865                 :            : {
     866                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::last" );
     867         [ +  - ]:          8 :     MutexGuard aGuard(m_aMutex);
     868         [ +  - ]:          8 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     869                 :            : 
     870 [ +  - ][ +  - ]:          8 :     return m_xDelegatorResultSet->last();
                 [ +  - ]
     871                 :            : }
     872                 :            : 
     873                 :        438 : sal_Int32 OResultSet::getRow(void) throw( SQLException, RuntimeException )
     874                 :            : {
     875                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getRow" );
     876         [ +  - ]:        438 :     MutexGuard aGuard(m_aMutex);
     877         [ +  - ]:        438 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     878                 :            : 
     879 [ +  - ][ +  - ]:        438 :     return m_xDelegatorResultSet->getRow();
                 [ +  - ]
     880                 :            : }
     881                 :            : 
     882                 :        122 : sal_Bool OResultSet::absolute(sal_Int32 row) throw( SQLException, RuntimeException )
     883                 :            : {
     884                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::absolute" );
     885         [ +  - ]:        122 :     MutexGuard aGuard(m_aMutex);
     886         [ +  - ]:        122 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     887                 :            : 
     888 [ +  - ][ +  - ]:        122 :     return m_xDelegatorResultSet->absolute(row);
                 [ +  - ]
     889                 :            : }
     890                 :            : 
     891                 :          0 : sal_Bool OResultSet::relative(sal_Int32 rows) throw( SQLException, RuntimeException )
     892                 :            : {
     893                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::relative" );
     894         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     895         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     896                 :            : 
     897 [ #  # ][ #  # ]:          0 :     return m_xDelegatorResultSet->relative(rows);
                 [ #  # ]
     898                 :            : }
     899                 :            : 
     900                 :         40 : sal_Bool OResultSet::previous(void) throw( SQLException, RuntimeException )
     901                 :            : {
     902                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::previous" );
     903         [ +  - ]:         40 :     MutexGuard aGuard(m_aMutex);
     904         [ +  - ]:         40 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     905                 :            : 
     906 [ +  - ][ +  - ]:         40 :     return m_xDelegatorResultSet->previous();
                 [ +  - ]
     907                 :            : }
     908                 :            : 
     909                 :          2 : void OResultSet::refreshRow(void) throw( SQLException, RuntimeException )
     910                 :            : {
     911                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::refreshRow" );
     912         [ +  - ]:          2 :     MutexGuard aGuard(m_aMutex);
     913         [ +  - ]:          2 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     914                 :            : 
     915 [ +  - ][ +  - ]:          2 :     m_xDelegatorResultSet->refreshRow();
                 [ +  - ]
     916                 :          2 : }
     917                 :            : 
     918                 :          2 : sal_Bool OResultSet::rowUpdated(void) throw( SQLException, RuntimeException )
     919                 :            : {
     920                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::rowUpdated" );
     921         [ +  - ]:          2 :     MutexGuard aGuard(m_aMutex);
     922         [ +  - ]:          2 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     923                 :            : 
     924 [ +  - ][ +  - ]:          2 :     return m_xDelegatorResultSet->rowUpdated();
                 [ +  - ]
     925                 :            : }
     926                 :            : 
     927                 :          4 : sal_Bool OResultSet::rowInserted(void) throw( SQLException, RuntimeException )
     928                 :            : {
     929                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::rowInserted" );
     930         [ +  - ]:          4 :     MutexGuard aGuard(m_aMutex);
     931         [ +  - ]:          4 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     932                 :            : 
     933 [ +  - ][ +  - ]:          4 :     return m_xDelegatorResultSet->rowInserted();
                 [ +  - ]
     934                 :            : }
     935                 :            : 
     936                 :          2 : sal_Bool OResultSet::rowDeleted(void) throw( SQLException, RuntimeException )
     937                 :            : {
     938                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::rowDeleted" );
     939         [ +  - ]:          2 :     MutexGuard aGuard(m_aMutex);
     940         [ +  - ]:          2 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     941                 :            : 
     942 [ +  - ][ +  - ]:          2 :     return m_xDelegatorResultSet->rowDeleted();
                 [ +  - ]
     943                 :            : }
     944                 :            : 
     945                 :         80 : Reference< XInterface > OResultSet::getStatement(void) throw( SQLException, RuntimeException )
     946                 :            : {
     947                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getStatement" );
     948         [ +  - ]:         80 :     MutexGuard aGuard(m_aMutex);
     949         [ +  - ]:         80 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     950                 :            : 
     951         [ +  - ]:         80 :     return m_aStatement;
     952                 :            : }
     953                 :            : 
     954                 :            : // ::com::sun::star::sdbcx::XRowLocate
     955                 :        310 : Any OResultSet::getBookmark(void) throw( SQLException, RuntimeException )
     956                 :            : {
     957                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::getBookmark" );
     958         [ +  - ]:        310 :     MutexGuard aGuard(m_aMutex);
     959         [ +  - ]:        310 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     960                 :            : 
     961         [ +  - ]:        310 :     checkBookmarkable();
     962                 :            : 
     963 [ +  - ][ +  - ]:        310 :     return Reference< XRowLocate >(m_xDelegatorResultSet, UNO_QUERY)->getBookmark();
         [ +  - ][ +  - ]
     964                 :            : }
     965                 :            : 
     966                 :        398 : sal_Bool OResultSet::moveToBookmark(const Any& bookmark) throw( SQLException, RuntimeException )
     967                 :            : {
     968                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::moveToBookmark" );
     969         [ +  - ]:        398 :     MutexGuard aGuard(m_aMutex);
     970         [ +  - ]:        398 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     971                 :            : 
     972         [ +  - ]:        398 :     checkBookmarkable();
     973                 :            : 
     974 [ +  - ][ +  - ]:        398 :     return Reference< XRowLocate >(m_xDelegatorResultSet, UNO_QUERY)->moveToBookmark(bookmark);
         [ +  - ][ +  - ]
     975                 :            : }
     976                 :            : 
     977                 :          0 : sal_Bool OResultSet::moveRelativeToBookmark(const Any& bookmark, sal_Int32 rows) throw( SQLException, RuntimeException )
     978                 :            : {
     979                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::moveRelativeToBookmark" );
     980         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
     981         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     982                 :            : 
     983         [ #  # ]:          0 :     checkBookmarkable();
     984                 :            : 
     985 [ #  # ][ #  # ]:          0 :     return Reference< XRowLocate >(m_xDelegatorResultSet, UNO_QUERY)->moveRelativeToBookmark(bookmark, rows);
         [ #  # ][ #  # ]
     986                 :            : }
     987                 :            : 
     988                 :         68 : sal_Int32 OResultSet::compareBookmarks(const Any& _first, const Any& _second) throw( SQLException, RuntimeException )
     989                 :            : {
     990                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::compareBookmarks" );
     991         [ +  - ]:         68 :     MutexGuard aGuard(m_aMutex);
     992         [ +  - ]:         68 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
     993                 :            : 
     994         [ +  - ]:         68 :     checkBookmarkable();
     995                 :            : 
     996 [ +  - ][ +  - ]:         68 :     return Reference< XRowLocate >(m_xDelegatorResultSet, UNO_QUERY)->compareBookmarks(_first, _second);
         [ +  - ][ +  - ]
     997                 :            : }
     998                 :            : 
     999                 :          2 : sal_Bool OResultSet::hasOrderedBookmarks(void) throw( SQLException, RuntimeException )
    1000                 :            : {
    1001                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::hasOrderedBookmarks" );
    1002         [ +  - ]:          2 :     MutexGuard aGuard(m_aMutex);
    1003         [ +  - ]:          2 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
    1004                 :            : 
    1005         [ +  - ]:          2 :     checkBookmarkable();
    1006                 :            : 
    1007 [ +  - ][ +  - ]:          2 :     return Reference< XRowLocate >(m_xDelegatorResultSet, UNO_QUERY)->hasOrderedBookmarks();
         [ +  - ][ +  - ]
    1008                 :            : }
    1009                 :            : 
    1010                 :          4 : sal_Int32 OResultSet::hashBookmark(const Any& bookmark) throw( SQLException, RuntimeException )
    1011                 :            : {
    1012                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::hashBookmark" );
    1013         [ +  - ]:          4 :     MutexGuard aGuard(m_aMutex);
    1014         [ +  - ]:          4 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
    1015                 :            : 
    1016         [ +  - ]:          4 :     checkBookmarkable();
    1017                 :            : 
    1018 [ +  - ][ +  - ]:          4 :     return Reference< XRowLocate >(m_xDelegatorResultSet, UNO_QUERY)->hashBookmark(bookmark);
         [ +  - ][ +  - ]
    1019                 :            : }
    1020                 :            : 
    1021                 :            : // ::com::sun::star::sdbc::XResultSetUpdate
    1022                 :          2 : void OResultSet::insertRow(void) throw( SQLException, RuntimeException )
    1023                 :            : {
    1024                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::insertRow" );
    1025         [ +  - ]:          2 :     MutexGuard aGuard(m_aMutex);
    1026         [ +  - ]:          2 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
    1027                 :            : 
    1028         [ +  - ]:          2 :     checkReadOnly();
    1029                 :            : 
    1030 [ +  - ][ +  - ]:          2 :     m_xDelegatorResultSetUpdate->insertRow();
                 [ +  - ]
    1031                 :          2 : }
    1032                 :            : 
    1033                 :          8 : void OResultSet::updateRow(void) throw( SQLException, RuntimeException )
    1034                 :            : {
    1035                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::updateRow" );
    1036         [ +  - ]:          8 :     MutexGuard aGuard(m_aMutex);
    1037         [ +  - ]:          8 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
    1038                 :            : 
    1039         [ +  - ]:          8 :     checkReadOnly();
    1040                 :            : 
    1041 [ +  - ][ +  - ]:          8 :     m_xDelegatorResultSetUpdate->updateRow();
                 [ +  - ]
    1042                 :          8 : }
    1043                 :            : 
    1044                 :          2 : void OResultSet::deleteRow(void) throw( SQLException, RuntimeException )
    1045                 :            : {
    1046                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::deleteRow" );
    1047         [ +  - ]:          2 :     MutexGuard aGuard(m_aMutex);
    1048         [ +  - ]:          2 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
    1049                 :            : 
    1050         [ +  - ]:          2 :     checkReadOnly();
    1051                 :            : 
    1052 [ +  - ][ +  - ]:          2 :     m_xDelegatorResultSetUpdate->deleteRow();
                 [ +  - ]
    1053                 :          2 : }
    1054                 :            : 
    1055                 :         40 : void OResultSet::cancelRowUpdates(void) throw( SQLException, RuntimeException )
    1056                 :            : {
    1057                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::cancelRowUpdates" );
    1058         [ +  - ]:         40 :     MutexGuard aGuard(m_aMutex);
    1059         [ +  - ]:         40 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
    1060                 :            : 
    1061         [ +  - ]:         40 :     checkReadOnly();
    1062                 :            : 
    1063 [ +  - ][ +  - ]:         40 :     m_xDelegatorResultSetUpdate->cancelRowUpdates();
                 [ +  - ]
    1064                 :         40 : }
    1065                 :            : 
    1066                 :         42 : void OResultSet::moveToInsertRow(void) throw( SQLException, RuntimeException )
    1067                 :            : {
    1068                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::moveToInsertRow" );
    1069         [ +  - ]:         42 :     MutexGuard aGuard(m_aMutex);
    1070         [ +  - ]:         42 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
    1071                 :            : 
    1072         [ +  - ]:         42 :     checkReadOnly();
    1073                 :            : 
    1074 [ +  - ][ +  - ]:         42 :     m_xDelegatorResultSetUpdate->moveToInsertRow();
                 [ +  - ]
    1075                 :         42 : }
    1076                 :            : 
    1077                 :          0 : void OResultSet::moveToCurrentRow(void) throw( SQLException, RuntimeException )
    1078                 :            : {
    1079                 :            :     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::moveToCurrentRow" );
    1080         [ #  # ]:          0 :     MutexGuard aGuard(m_aMutex);
    1081         [ #  # ]:          0 :     ::connectivity::checkDisposed(OResultSetBase::rBHelper.bDisposed);
    1082                 :            : 
    1083         [ #  # ]:          0 :     checkReadOnly();
    1084                 :            : 
    1085 [ #  # ][ #  # ]:          0 :     m_xDelegatorResultSetUpdate->moveToCurrentRow();
                 [ #  # ]
    1086                 :          0 : }
    1087                 :            : 
    1088                 :        104 : void OResultSet::checkReadOnly() const
    1089                 :            : {
    1090                 :            :     //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::checkReadOnly" );
    1091   [ +  -  -  + ]:        208 :     if  (   ( m_nResultSetConcurrency == ResultSetConcurrency::READ_ONLY )
                 [ -  + ]
    1092                 :        104 :         ||  !m_xDelegatorResultSetUpdate.is()
    1093                 :            :         )
    1094         [ #  # ]:          0 :         throwSQLException( "The result set is read-only.", SQL_GENERAL_ERROR, *const_cast< OResultSet* >( this ) );
    1095                 :        104 : }
    1096                 :            : 
    1097                 :        782 : void OResultSet::checkBookmarkable() const
    1098                 :            : {
    1099                 :            :     //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OResultSet::checkBookmarkable" );
    1100         [ -  + ]:        782 :     if ( !m_bIsBookmarkable )
    1101         [ #  # ]:          0 :         throwSQLException( "The result set does not have bookmark support.", SQL_GENERAL_ERROR, *const_cast< OResultSet* >( this ) );
    1102                 :        782 : }
    1103                 :            : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10