У меня есть таблица SQLite с потенциально сотнями тысяч записей, которая добавляется (и иногда удаляется из) в фоновом режиме с нерегулярными интервалами. Пользовательский интерфейс должен отображать эту таблицу в произвольном порядке, выбранном пользователем, в элементе wxWidgets wxListCtrl
.
Я планирую использовать элемент управления списком wxLC_VIRTUAL
и запрашивать таблицу для небольших групп элементов по мере необходимости, используя LIMIT
и OFFSET
, но я предвижу проблему. Когда фоновый процесс вносит изменения в элементы, которые «выше» просматриваемых в настоящее время, я не вижу способа узнать, как изменится просматриваемые в настоящее время элементы.
Есть ли какой-нибудь трюк с SQLite, чтобы справиться с этим? Может быть, способ определить, в каком смещении находится конкретная запись в определенном отсортированном порядке, без перебора всех записей, возвращаемых оператором SELECT
?
В качестве альтернативы, есть ли какой-нибудь способ создать неизменное представление базы данных в определенное время без дублирования ее времени?
Если ничего не помогает, я могу сохранить измененные элементы и добавить их позже, но я надеюсь, что мне не придется.