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]
