полей в QSqlResult. Есть функция в абстрактном классе, которая принимает строку (с SQL-запросом) в качестве аргумента, а возвращает QJsonArray. Так вот, чтобы создать QJsonObject, необходимо знать имена полей. Собственно, как их получать?
Дак а когда ты формируешь запрос, ты называния полей не указываешь?
поищи в исходниках sqliteman (он на Qt написан), но по-моему твоя догадка верная, через qsqlrecord
QList<QSqlRecord> sqlite_query_results(c_main_class *Settings, QString qStr, QString ConName) { QList<QSqlRecord> result; QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); QSqlQuery q(QSqlDatabase::database(ConName)); q.clear(); if (q.prepare(qStr)) { if (!q.exec()) { Settings->ResultFill(&q, QString("exec %1").arg(FUNCTION), ConName); } else { result.clear(); while (q.next()) { result.append(q.record()); } } } else//if (q.prepare("drop table if exists names;")) { Settings->ResultFill(&q, QString("prep %1").arg(FUNCTION),ConName); }//else//if (q.prepare("drop table if exists names;")) QApplication::restoreOverrideCursor(); return result; } QSqlRecord::filed(index).isValid() - можно вычислить какое поле последнее и слдовательно их кол-во.
Обсуждают сегодня