Сейчас моё обращение к БД выглядит так:
QVector<QStringList> VectorOfRecords;
QueryConstructor SelectAll;
SelectAll.setTableName(QStringLiteral("TableName"));
SelectAll.setOrderByClause("Id", Descending);
QSqlQuery getRecordsQuery(Database);
if( getRecordsQuery.exec(SelectAll.constructSelectQuery()))
{
while (getRecordsQuery.next())
{
QStringList Row;
for (int i = 0;i < 9;i++)
{
Row.push_back(getRecordsQuery.value(i).toString());
}
VectorOfRecords.push_back(Row);
}
}
else
{
QMessageBox::critical(NULL, QObject::tr("Error"), getRecordsQuery.lastError().text());
}
QueryConstructor это мой класс, в данном примере он составляет запрос на вывод всей таблицы целиком.
Я хочу тут заменить это
getRecordsQuery.value(i)
на обращение не по индексу, а по названию. Потому что по циферкам обращаться как-то ненадежно и нечитаемо, мне кажется. Как это можно сделать? Так-то все работает, но хочется сделать более гибкую систему.
Я хочу тут заменить это
Посмотрите QVariant QSqlQuery::value(const QString &name) const - это перегруженный вариант. То, что вам надо.
Продвижение своими сайтами как стратегия роста и независимости