User: rt      
Date: 2008-01-30 07:53:17+0000
Modified:
   dba/connectivity/source/drivers/hsqldb/HConnection.cxx

Log:
 INTEGRATION: CWS dba24d (1.8.142); FILE MERGED
 2007/12/01 13:36:30 fs 1.8.142.2: RESYNC: (1.8-1.9); FILE MERGED
 2007/11/27 07:32:30 oj 1.8.142.1: #i51355# check if stream exists when 
read-only

File Changes:

Directory: /dba/connectivity/source/drivers/hsqldb/
===================================================

File [changed]: HConnection.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/hsqldb/HConnection.cxx?r1=1.9&r2=1.10
Delta lines:  +22 -2
--------------------
--- HConnection.cxx     2007-11-21 15:00:58+0000        1.9
+++ HConnection.cxx     2008-01-30 07:53:14+0000        1.10
@@ -51,6 +51,7 @@
 #include <com/sun/star/graphic/XGraphicProvider.hpp>
 #include <com/sun/star/graphic/GraphicColorMode.hpp>
 #include <com/sun/star/beans/PropertyValue.hpp>
+#include <com/sun/star/sdbc/XDatabaseMetaData2.hpp>
 /** === end UNO includes === **/
 
 #include <comphelper/componentcontext.hxx>
@@ -88,6 +89,7 @@
 using ::com::sun::star::uno::makeAny;
 using ::com::sun::star::sdbc::XResultSet;
 using ::com::sun::star::sdbc::XDatabaseMetaData;
+using ::com::sun::star::sdbc::XDatabaseMetaData2;
 using ::com::sun::star::sdbc::XRow;
 using ::com::sun::star::sdb::application::XDatabaseDocumentUI;
 using ::com::sun::star::beans::PropertyValue;
@@ -136,6 +138,8 @@
         ,m_aFlushListeners( m_aMutex )
         ,m_xDriver( _rxDriver )
         ,m_xORB( _xORB )
+        ,m_bIni(true)
+        ,m_bReadOnly(false)
     {
            setDelegation(_xConnection,_xORB,m_refCount);
     }
@@ -175,9 +179,25 @@
            {
                    if ( m_xConnection.is() )
                    {
+                if ( m_bIni )
+                {
+                    m_bIni = false;
+                    Reference< XDatabaseMetaData2 > 
xMeta2(m_xConnection->getMetaData(),UNO_QUERY_THROW);
+                    const Sequence< PropertyValue > aInfo = 
xMeta2->getConnectionInfo();
+                    const PropertyValue* pIter = aInfo.getConstArray();
+                    const PropertyValue* pEnd  = pIter + aInfo.getLength();
+                    for(;pIter != pEnd;++pIter)
+                    {
+                        if ( pIter->Name.compareToAscii("readonly") == 0 )
+                            m_bReadOnly = true;
+                    }
+                }
+                if ( !m_bReadOnly )
+                {
                 Reference< XStatement > xStmt( 
m_xConnection->createStatement(), UNO_QUERY_THROW );
                 xStmt->execute( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( 
"CHECKPOINT" ) ) );
             }
+            }
 
             EventObject aFlushedEvent( *this );
             m_aFlushListeners.notifyEach( &XFlushListener::flushed, 
aFlushedEvent );




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to