crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

kuler
  опции профиля:
сообщение 10.4.2009, 15:20
Сообщение #1


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

Спасибо сказали: 6 раз(а)




Репутация:   -1  


в tableview не отображаются результаты запроса
QSqlQuery query;
  
    QSqlQueryModel model;
    ui.tv->setModel(&model);

    bool res = query.exec("select hl.HOST_ID from c_host_list hl where hl.HOST_ID = 37");

    model.setQuery("select hl.HOST_ID from c_host_list hl where hl.HOST_ID = 37");
    //model.setQuery(query); так тоже не работат

    ui.tv->show();


  while (query.next()) не пустой
    {
        int id = query.value(0).toInt();
        id = id;
    }

    for (int i = 0; i < model.rowCount(); ++i) тоже не пустой
    {
        int id = model.record(i).value("HOST_ID").toInt();
        id = id;
    }

а в табличке только одна пустая строка с одним столбцом
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Frigolem
  опции профиля:
сообщение 3.5.2009, 23:04
Сообщение #2


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 24.9.2008
Пользователь №: 297

Спасибо сказали: 3 раз(а)




Репутация:   0  


Попробуй вместо:
QSqlQueryModel model;
использовать указатель:
QSqlQueryModel * model = new QSqlQueryModel( ui.tv );
Тогда model не пропадёт для TableView. Соответственно понадобится учитывать, чтобы он создавался только один раз (за всю работу проги), иначе будет утечка памяти.

(маленькое уточнение): не за всю работу проги, а за всё время жизни TableView. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 15.7.2025, 16:50