Как вариант:
на стороне сервера результаты запроса записываешь в контейнер типа QList<QHash<QString, QVariant> >, сереализуешь с помощью QDataStream и отправляешь клиенту.
Клиент востанавливает контейнер, далее:
C++ (Qt)
QSqlTableModel model;
typedef QHash<QString, QVariant> T;
int row = 0;
foreach<T item, receivedList> {
QSqlRecord rec;
T::const_iterator i = item.constBegin();
while(i != item.constEnd()) {
QSqlField field(i.key());
field.setValue(i.value());
rec.append(field);
++i;
}
model.setRecord(row, rec);
++row;
}