bool IExtensionsExtension::isExtensionRegistered(shared_ptr<Portal> portal, shared_ptr<IPortalDatabase> db, Version &version) const { OS_ASSERT(portal != nullptr); OS_EXCEPT_IF(db == nullptr, "Invalid database"); shared_ptr<DbSqlSelect> select(OS_NEW DbSqlSelect(DBTABLES::EXTENSIONS_TABLE)); select->fields.add(DbSqlField(DBTABLES::EXTENSIONS::VERSION)); select->where.add(DBTABLES::EXTENSIONS::ID, Convert::toSQL(getID().toUTF16())); select->limit.setCount(1); DataTable result; if(db->execute(select, result) == false) return false; if(result.rows() == 0) return false; version.fromString(static_cast<String>(*result[0][0]).to_ascii()); return true; }