Название: Сериализация QSqlQuery Отправлено: ploop от Декабрь 17, 2013, 14:28 Собственно, вопрос в заголовке.
После выполнения запроса в QSqlQuery надо как-то вытянуть данные для передачи по сети. Если бы запросы были однотипные (с одинаковым набором полей) проблем бы не было, прогнал в цикле по записям и всё. Но структура такая: клиент даёт запрос серверу, сервер напрямую передаёт его БД, забирает результат, и этот результат (после анализа) должен передать клиенту. Объёмы небольшие, но запросы все разные. И аналогично на клиенте надо десериализовать всё это дело, желательно восстановить структуру QSqlQuery или нечто подобное, для отображения (т.е. подцепить всё это к QSqlTableModel) Реально? Название: Re: Сериализация QSqlQuery Отправлено: popper от Декабрь 17, 2013, 19:56 Как вариант:
на стороне сервера результаты запроса записываешь в контейнер типа QList<QHash<QString, QVariant> >, сереализуешь с помощью QDataStream и отправляешь клиенту. Клиент востанавливает контейнер, далее: Код
Название: Re: Сериализация QSqlQuery Отправлено: ploop от Декабрь 17, 2013, 21:45 Хм... интересный вариант. Попробую завтра, спасибо.
Название: Re: Сериализация QSqlQuery Отправлено: ploop от Декабрь 18, 2013, 17:42 Всё получилось. Просто забыл, что QDataStream отлично (де)сериализует QVariant'ы.
Суём в него количество записей, количество полей, и дальше в цикле variant'ные значения. |