Russian Qt Forum

Qt => Вопросы новичков => Тема начата: KSLYRE от Июнь 24, 2012, 11:35



Название: [РЕШЕНО] Сумма значений столбца таблицы
Отправлено: KSLYRE от Июнь 24, 2012, 11:35
Имеется QTableView, данные представлены через QSqlTableModel.
Требуется посчитать сумму всех значений одного столбца таблицы и вывести данные в QLineEdit.
В Интернете подобной реализации не нашел.

Попытался сделать так (хотя знаю, что это неправильно):
Код:
QSqlQuery query;
int total = query.exec("SELECT SUM(data) FROM table");
ui->lineEdit->setText(QString::number(total));
Но в результате получается 1 (видимо, определяет выполнение как булева).


Название: Re: Сумма значений столбца таблицы
Отправлено: mutineer от Июнь 24, 2012, 11:38
bool QSqlQuery::exec ( const QString & query )

Вот же написано, что возвращает bool

Почитай доку
http://doc.crossplatform.ru/qt/4.7.x/html-qt/qsqlquery.html#exec


Название: Re: Сумма значений столбца таблицы
Отправлено: Serr500 от Июнь 24, 2012, 11:45
Попытался сделать так (хотя знаю, что это неправильно):
Код:
QSqlQuery query;
int total = query.exec("SELECT SUM(data) FROM table");
ui->lineEdit->setText(QString::number(total));
Но в результате получается 1 (видимо, определяет выполнение как булева).

А зачем ТАК делать, если знаешь, что НЕПРАВИЛЬНО?  :-\

Цитировать
bool QSqlQuery::exec ( const QString & query )
Executes the SQL in query. Returns true and sets the query state to active if the query was successful; otherwise returns false.

Код:
QSqlQuery query;
if (query.exec("SELECT SUM(data) FROM table") && query.first())
{
    QSqlRecord record = query.record();
    total = record.value(0).toInt();
}



Название: Re: Сумма значений столбца таблицы
Отправлено: KSLYRE от Июнь 24, 2012, 11:58
Спасибо! Все работает! Как раз думал как-нибудь через QSqlRecord реализовать.

А насчет exec, да, накосячил - забыл в доку глянуть.