Kaydet (Commit) 34d60277 authored tarafından Andrzej J.R. Hunt's avatar Andrzej J.R. Hunt

Implement readonly support in firebird-sdbc.

Change-Id: Ifdb235a3772b92b7064d059700084f75d468d146
üst 66a716a5
...@@ -93,6 +93,7 @@ OConnection::OConnection(FirebirdDriver* _pDriver) ...@@ -93,6 +93,7 @@ OConnection::OConnection(FirebirdDriver* _pDriver)
m_bUseCatalog(sal_False), m_bUseCatalog(sal_False),
m_bUseOldDateFormat(sal_False), m_bUseOldDateFormat(sal_False),
m_bAutoCommit(sal_True), m_bAutoCommit(sal_True),
m_bReadOnly(sal_False),
m_DBHandler(0), m_DBHandler(0),
m_transactionHandle(0) m_transactionHandle(0)
{ {
...@@ -383,11 +384,10 @@ void OConnection::setupTransaction() ...@@ -383,11 +384,10 @@ void OConnection::setupTransaction()
static char isc_tpb[] = { static char isc_tpb[] = {
isc_tpb_version3, isc_tpb_version3,
(m_bAutoCommit ? isc_tpb_autocommit : 0), (char) (m_bAutoCommit ? isc_tpb_autocommit : 0),
isc_tpb_write, (char) (!m_bReadOnly ? isc_tpb_write : isc_tpb_read),
isc_tpb_read_committed, isc_tpb_read_committed, // TODO: set isolation level here
isc_tpb_wait, isc_tpb_wait
isc_tpb_no_rec_version
}; };
isc_start_transaction(status_vector, &m_transactionHandle, 1, &m_DBHandler, isc_start_transaction(status_vector, &m_transactionHandle, 1, &m_DBHandler,
...@@ -449,22 +449,23 @@ Reference< XDatabaseMetaData > SAL_CALL OConnection::getMetaData( ) throw(SQLEx ...@@ -449,22 +449,23 @@ Reference< XDatabaseMetaData > SAL_CALL OConnection::getMetaData( ) throw(SQLEx
return xMetaData; return xMetaData;
} }
// --------------------------------------------------------------------------------
void SAL_CALL OConnection::setReadOnly( sal_Bool readOnly ) throw(SQLException, RuntimeException) void SAL_CALL OConnection::setReadOnly(sal_Bool readOnly)
throw(SQLException, RuntimeException)
{ {
::osl::MutexGuard aGuard( m_aMutex ); ::osl::MutexGuard aGuard( m_aMutex );
checkDisposed(OConnection_BASE::rBHelper.bDisposed); checkDisposed(OConnection_BASE::rBHelper.bDisposed);
// set you connection to readonly m_bReadOnly = readOnly;
setupTransaction();
} }
// --------------------------------------------------------------------------------
sal_Bool SAL_CALL OConnection::isReadOnly( ) throw(SQLException, RuntimeException) sal_Bool SAL_CALL OConnection::isReadOnly() throw(SQLException, RuntimeException)
{ {
::osl::MutexGuard aGuard( m_aMutex ); ::osl::MutexGuard aGuard( m_aMutex );
checkDisposed(OConnection_BASE::rBHelper.bDisposed); checkDisposed(OConnection_BASE::rBHelper.bDisposed);
// return if your connection to readonly return m_bReadOnly;
return sal_False;
} }
// -------------------------------------------------------------------------------- // --------------------------------------------------------------------------------
void SAL_CALL OConnection::setCatalog( const ::rtl::OUString& catalog ) throw(SQLException, RuntimeException) void SAL_CALL OConnection::setCatalog( const ::rtl::OUString& catalog ) throw(SQLException, RuntimeException)
......
...@@ -109,6 +109,7 @@ namespace connectivity ...@@ -109,6 +109,7 @@ namespace connectivity
sal_Bool m_bUseCatalog; // should we use the catalog on filebased databases sal_Bool m_bUseCatalog; // should we use the catalog on filebased databases
sal_Bool m_bUseOldDateFormat; sal_Bool m_bUseOldDateFormat;
sal_Bool m_bAutoCommit; sal_Bool m_bAutoCommit;
sal_Bool m_bReadOnly;
isc_db_handle m_DBHandler; isc_db_handle m_DBHandler;
isc_tr_handle m_transactionHandle; isc_tr_handle m_transactionHandle;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment