Вы звоните acceptChanges()
, когда будете готовы распространить изменения на базовый источник данных.Тем не менее, если вы выполняете несколько обновлений / вставок (для нескольких строк), вам следует вызвать acceptChanges()
после того, как все updateRow()
и insertRow()
завершены.Причина в том, что когда вы вызываете acceptChanges()
, вы устанавливаете фактическое соединение с базой данных, которое часто может быть дорогим.Поэтому вызывать его каждый раз после каждого insertRow / updateRow для нескольких строк неэффективно.
В вашем коде я бы поставил acceptChanges()
после окончания блока while.Причина в том, что я упомянул выше - установление соединения с базой данных только один раз после всех обновлений для cacheResult в блоке while.