Index: src/libchcore/TSerializerVersion.cpp =================================================================== diff -u -N -rb1ecc12ba4c1f2a7b4acd6e82fc4193535e55ff0 -r1342b18babc7e88850e74f46cb473a737a68f28a --- src/libchcore/TSerializerVersion.cpp (.../TSerializerVersion.cpp) (revision b1ecc12ba4c1f2a7b4acd6e82fc4193535e55ff0) +++ src/libchcore/TSerializerVersion.cpp (.../TSerializerVersion.cpp) (revision 1342b18babc7e88850e74f46cb473a737a68f28a) @@ -30,7 +30,8 @@ using namespace sqlite; TSerializerVersion::TSerializerVersion(const TSQLiteDatabasePtr& spDatabase) : - m_spDatabase(spDatabase) + m_spDatabase(spDatabase), + m_bSetupExecuted(false) { if(!spDatabase) THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("No database provided")); @@ -42,6 +43,9 @@ void TSerializerVersion::Setup() { + if(m_bSetupExecuted) + return; + TSQLiteTransaction tTransaction(m_spDatabase); TSQLiteStatement tStatement(m_spDatabase); @@ -64,10 +68,14 @@ } tTransaction.Commit(); + + m_bSetupExecuted = true; } int TSerializerVersion::GetVersion() { + Setup(); + TSQLiteTransaction tTransaction(m_spDatabase); TSQLiteStatement tStatement(m_spDatabase); @@ -85,6 +93,8 @@ void TSerializerVersion::SetVersion(int iNewVersion) { + Setup(); + TSQLiteTransaction tTransaction(m_spDatabase); TSQLiteStatement tStatement(m_spDatabase);