Russian Qt Forum
Ноябрь 05, 2024, 22:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Сумма значений столбца таблицы  (Прочитано 3761 раз)
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 (видимо, определяет выполнение как булева).
« Последнее редактирование: Июнь 24, 2012, 12:00 от Strider » Записан
mutineer
Гость
« Ответ #1 : Июнь 24, 2012, 11:38 »

bool QSqlQuery::exec ( const QString & query )

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

Почитай доку
http://doc.crossplatform.ru/qt/4.7.x/html-qt/qsqlquery.html#exec
Записан
Serr500
Гость
« Ответ #2 : Июнь 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();
}

Записан
KSLYRE
Гость
« Ответ #3 : Июнь 24, 2012, 11:58 »

Спасибо! Все работает! Как раз думал как-нибудь через QSqlRecord реализовать.

А насчет exec, да, накосячил - забыл в доку глянуть.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.124 секунд. Запросов: 20.