diff --git a/Code/Common/Core/mvdDatabaseConnection.cxx b/Code/Common/Core/mvdDatabaseConnection.cxx index 3a237b9c3ad6c9e2721d84dab716bb9b1f8b550f..9e52d3b525906ad05ad855512643625e38ba7916 100644 --- a/Code/Common/Core/mvdDatabaseConnection.cxx +++ b/Code/Common/Core/mvdDatabaseConnection.cxx @@ -420,11 +420,13 @@ DatabaseConnection DirectExecuteQuery( QString( "SELECT database_attribute.id, database_attribute.value\n" "FROM database_attribute\n" - "WHERE database_attribute.name='%1';" + "WHERE database_attribute.name='%1' COLLATE NOCASE;" ).arg( name ) ) ); + QUERY_NEXT( query ); + // // Get ID, if needed. assert( query.value( 0 ).type()==QVariant::LongLong ); diff --git a/Code/Common/Core/mvdDatabaseModel.cxx b/Code/Common/Core/mvdDatabaseModel.cxx index abe3b35694f2df721e1b1452d126173b27074ab4..73c7c39d489dc0eb19cb513b147970a251ba97f9 100644 --- a/Code/Common/Core/mvdDatabaseModel.cxx +++ b/Code/Common/Core/mvdDatabaseModel.cxx @@ -38,6 +38,7 @@ // // Monteverdi includes (sorted by alphabetic order) +#include "Core/mvdCore.h" #include "Core/mvdDatabaseConnection.h" #include "Core/mvdDatasetModel.h" #include "Core/mvdI18nCoreApplication.h" @@ -315,6 +316,8 @@ DatabaseModel { assert( m_Db==NULL ); + // + // Create SQL database-connection. delete m_Db; m_Db = @@ -323,6 +326,26 @@ DatabaseModel this ); + // + // Check database version. + QVariant version( m_Db->GetAttribute( "version" ) ); + + assert( version.type()==QVariant::String ); + + qWarning() + << "Database format version:" << ToStdString( version.toString() ).c_str(); + + if( !IsVersionGreaterEqual( version.toString(), + Monteverdi2_DATA_VERSION_STRING ) ) + throw std::runtime_error( + ToStdString( + tr( "Database format version %1 is not supported anymore." ) + .arg( version.toString() ) + ) + ); + + // + // Check outdated datasets. CountType nbOutdated = InitializeDatasetModels(); if( context!=NULL )