Вы не можете делать то, что хотите в Qt, или что-либо еще в этом отношении, не создавая "глубокую копию".
Если вы используете базу данных real , а не SQLite или некоторые другие. другой метод хранения нижнего уровня, который не использует ядро базы данных, вы можете делать то, что вы хотите, не делая передачу. Прочтите временных таблиц для выбранной вами базы данных. Вы можете ВЫБРАТЬ В временную таблицу. Это гораздо эффективнее, потому что база данных с активным движком будет просто создавать курсор указателей, но обрабатывать его как настоящую таблицу. Если результирующий курсор слишком велик для оперативной памяти, он запишет его во временную временную область.
После этого ваш клиент скажет приложению сервера, чтобы УДАЛИТЬ строки, которые вы хотите удалить из временной таблицы, и ВСТАВИТЬ строки, которые вы хотите добавить. Просто убедитесь, что ваш сервер работает с временной таблицей с этого момента.
ПРИМЕЧАНИЕ: если вы работаете с очень плохим примером электронной таблицы, который связывает результат данных с электронной таблицей из потока GUI Вы не можете это исправить. Каждый официальный пример, который я нашел в Интернете, действительно плох. Никогда не выполняйте ввод-вывод базы данных в основном событии l oop.
Возможно, вы захотите получить копию этой книги . Он не будет содержать ответ на этот вопрос, но он содержит много примеров рабочих баз данных.