diff options
Diffstat (limited to 'dbaccess')
-rw-r--r-- | dbaccess/source/core/dataaccess/datasource.cxx | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/dbaccess/source/core/dataaccess/datasource.cxx b/dbaccess/source/core/dataaccess/datasource.cxx index 7943104ff0a5..0c89cfb04324 100644 --- a/dbaccess/source/core/dataaccess/datasource.cxx +++ b/dbaccess/source/core/dataaccess/datasource.cxx @@ -607,6 +607,7 @@ Reference< XConnection > ODatabaseSource::buildLowLevelConnection(const OUString if( aMiscOptions.IsExperimentalMode() && m_pImpl->m_sConnectURL == "sdbc:embedded:hsqldb" ) { + Reference<XStorage> const xRootStorage = m_pImpl->getOrCreateRootStorage(); OUString sMigrEnvVal; osl_getEnvironment(OUString("DBACCESS_HSQL_MIGRATION").pData, &sMigrEnvVal.pData); @@ -614,8 +615,14 @@ Reference< XConnection > ODatabaseSource::buildLowLevelConnection(const OUString bNeedMigration = true; else { - MigrationWarnDialog aWarnDlg(GetFrameWeld(m_pImpl->getModel_noCreate())); - bNeedMigration = aWarnDlg.run() == RET_OK; + Reference<XPropertySet> const xPropSet(xRootStorage, UNO_QUERY_THROW); + sal_Int32 nOpenMode(0); + if ((xPropSet->getPropertyValue("OpenMode") >>= nOpenMode) + && (nOpenMode & css::embed::ElementModes::WRITE)) + { + MigrationWarnDialog aWarnDlg(GetFrameWeld(m_pImpl->getModel_noCreate())); + bNeedMigration = aWarnDlg.run() == RET_OK; + } } if (bNeedMigration) m_pImpl->m_sConnectURL = "sdbc:embedded:firebird"; |