Название: Как результат sql запроса перевести в переменную? Отправлено: Alexsandr от Декабрь 26, 2011, 07:59 Такая проблема, существует sql запрос который выводит число, которое нужно перевести в переменную. Как это можно реализовать?
У меня конечно есть "кривой" способ, но хочется всё сделать правильно. "Кривой" способ выглядит так: QTableView *tableview = new QTableView; QVariant z1; QString z; QModelIndex bz; Count_row = new QSqlQueryModel; QSqlQuery count_row = QString("SELECT COUNT(Decision.Decision) FROM блаблабла WHERE блаблабла"); Count_row->setQuery(count_row); tableview->setModel(Count_row); bz = tableview->model()->index(0, 0, QModelIndex()); z1 = tableview->model()->data(bz, Qt::DisplayRole); z = z1.toInt(); По сути сдесь у нас имеется tableview нулевого размера, из корого уже беруться значения и переводяться в переменну. Но как это сделать менее криво я незнаю. Подскажите плз) Название: Re: Как результат sql запроса перевести в переменную? Отправлено: Whiplash от Декабрь 26, 2011, 09:06 О, йуный падаван, QSqlQuery силу используй ты.
Цитировать QSqlQuery q(db->db); QByteArray templ; if(q.exec("select v_text from lib_values where id_att=55 and id_lib=23437")){ if(q.next()) templ=q.value(0).toByteArray(); } Вот кода рабочего кусок тут. Название: Re: Как результат sql запроса перевести в переменную? Отправлено: Syveren от Декабрь 26, 2011, 09:08 Код: QSqlQuery query; Название: Re: Как результат sql запроса перевести в переменную? Отправлено: Alexsandr от Декабрь 26, 2011, 09:51 Вот спасибо, всё работает! =)
Название: Re: Как результат sql запроса перевести в переменную? Отправлено: Alexsandr от Декабрь 26, 2011, 10:00 Ввиду того, что я в qt нуп, возник еще 1 вопрос касаемо этой темы, допустим у меня выводиться не одна строка, а несколько. То, как я понимаю:
Код: QSqlQuery query; уже не спасёт. К примеру: Код: QSqlQuery selectt; Название: Re: Как результат sql запроса перевести в переменную? Отправлено: Syveren от Декабрь 26, 2011, 11:11 Если я правильно вас понял, то:
Код: QSqlQuery q; (Вместо q.first() в предыдущем ответе, можно использовать q.next(); результат один и тотже) |