Russian Qt Forum

Qt => Базы данных => Тема начата: vinnipux от Февраль 28, 2008, 06:44



Название: QSqlQueryModel запрос с бинами
Отправлено: vinnipux от Февраль 28, 2008, 06:44
Доброе время суток. возникал такая проблема. есть таблица, и необходимо выполнить селект к ней с параметрами. делаю так:
Код:
QSqlQueryModel *model = new QSqlQueryModel;
QString strSel="SELECT full_name, reg_num, event_registration_date, address, description"
           " FROM reg_org"
" WHERE event_registration_date BETWEEN to_date(:sDat,'DD.MM.YYYY') AND to_date(:eDat,'DD.MM.YYYY')";
(model->query()).prepare(strSel);
(model->query()).bindValue(":sDat",this->ui.deStart->text());
(model->query()).bindValue(":eDat",this->ui.deEnd->text());
(model->query()).exec();
ui.lvNKO->setModel(model);//QListView
ui.lvNKO->show();
проблема в том что селект так и не выполняется.
Подскажите как правильно сделать.


Название: Re: QSqlQueryModel запрос с бинами
Отправлено: Alex03 от Февраль 28, 2008, 07:53
Вас вот эта строчка не смущает?
Код:
QSqlQuery QSqlQueryModel::query () const
Вы оперируете с временными объектами.
Попробуйте так:
Код:
    QSqlQuery q(strSel, db);
    q.bindValue(":sDat",this->ui.deStart->text());
    q.bindValue(":eDat",this->ui.deEnd->text());
    q.exec();
    model->setQuery(q);
PS хотя я с qt sql моделями не работал.


Название: Re: QSqlQueryModel запрос с бинами
Отправлено: vinnipux от Февраль 28, 2008, 08:41
Спаибо! блин засмотрелся. я подумал что так можно сделать, но не увидел что метод setQuery в качетсве параметра может принемать QSqlQuery. Спаибо! все заработало. Постораюся быть более внимательным в дальнейшем