Russian Qt Forum
Ноябрь 23, 2024, 10:33
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Базы данных
>
не дополучаю содержимое запроса
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: не дополучаю содержимое запроса (Прочитано 5605 раз)
mokynis
Самовар
Offline
Сообщений: 176
не дополучаю содержимое запроса
«
:
Февраль 04, 2010, 13:57 »
просто интересно, почему так:
получаю информацию для последующей печати-
void MyModel::makeHtml()
{
QSqlQuery qry=this->query();
QString strHtml="<TABLE BORDER>",tekUser="";
//пробовал без first(),next() и isValid(), просто while(qry.next())-теряет первые записи
qry.first();
while(qry.isValid())
{
if(tekUser!=qry.value(1).toString())
{
strHtml+="<TR><TH COLSPAN=5>"+qry.value(1).toString()+"</TH></TR>";
tekUser=qry.value(1).toString();
}
strHtml+="<TR><TD>"+qry.value(2).toString()+"</TD>"+.....
qry.next();
}
strHtml+="</TABLE>";
........
}
вопрос: почему надо непременно мудрить с first()? Я ж в qry получил содержимое запроса? Даже если встаю на первую строку в QTableView, в которой отображается модель, все равно на печати отсутствуют несколько первых строк.
Записан
QT4, Qt5, Qt6 Debian, ArchLinux
crossly
Гость
Re: не дополучаю содержимое запроса
«
Ответ #1 :
Февраль 04, 2010, 14:05 »
При переходе на по TableView QSqlQuery::seek не вызывается.... а вызывается он в методе data модели.... т. е. по идее при QSqlQuery qry=this->query(); позиция в запросе должна быть в строке для которой последним вызывался data модели.... каламбур... но надеюсь понятно??
Записан
CroCIV
Гость
Re: не дополучаю содержимое запроса
«
Ответ #2 :
Февраль 04, 2010, 14:36 »
нет )))) не понятно, прям талантище для написания курсовых и дипломов
Записан
mokynis
Самовар
Offline
Сообщений: 176
Re: не дополучаю содержимое запроса
«
Ответ #3 :
Февраль 04, 2010, 14:43 »
Цитировать
надеюсь понятно??
не особо
Если я на первой строке стою, то для нее и вызывается data (у меня подробно раскрывается выбранная запись). Ну, не будет в распечатке первой записи, так у меня их штук несколько отсутствует.
Записан
QT4, Qt5, Qt6 Debian, ArchLinux
CroCIV
Гость
Re: не дополучаю содержимое запроса
«
Ответ #4 :
Февраль 04, 2010, 14:51 »
mokynis, а что возвращает тебе qry.at()?
Записан
CroCIV
Гость
Re: не дополучаю содержимое запроса
«
Ответ #5 :
Февраль 04, 2010, 14:56 »
попробуй еще предварительно перед выполнением запроса установить setForwardOnly(true) и потом выполнение запроса, потом at() что вернет.
В твоем случае setForwardOnly(true) больше подходит, тебе же не надо выполнять замысловатую навигацию по запросу, просто данные получить ?
Записан
crossly
Гость
Re: не дополучаю содержимое запроса
«
Ответ #6 :
Февраль 04, 2010, 15:04 »
Цитата: mokynis от Февраль 04, 2010, 14:43
Цитировать
надеюсь понятно??
не особо
Если я на первой строке стою, то для нее и вызывается data (у меня подробно раскрывается выбранная запись). Ну, не будет в распечатке первой записи, так у меня их штук несколько отсутствует.
а с чего это он должен вызываться когда ты на нем стоишь??
Записан
CroCIV
Гость
Re: не дополучаю содержимое запроса
«
Ответ #7 :
Февраль 04, 2010, 15:19 »
кароче так, при QSqlQuery qry=this->query();
qry уже имеет смещенный индекс активной записи, когда он был смещен и почему, это надо шерстить this
и на самом деле да, если this - это некоторый указатель на объект, имеющий собственную модель, то, как метко заметил crossly индекс активного элемента модели НЕ одно и тоже, что и индекс активной записи запроса, т.е. можно индекс модели this-a менять как угодно от этого индекс активной записи запроса не изменится, до покуда не будет выполнено непосредственное обращение к данным запроса
каламбур?
Записан
crossly
Гость
Re: не дополучаю содержимое запроса
«
Ответ #8 :
Февраль 04, 2010, 15:31 »
примерно то же что и у меня
.... короче.... когда ты ходишь по вьюхе ты по сути дела работаешь с itemselectionmodel... метод data модели вызывается при создании/обновлении модели... но никак не при выделении ....
Записан
mokynis
Самовар
Offline
Сообщений: 176
Re: не дополучаю содержимое запроса
«
Ответ #9 :
Февраль 05, 2010, 09:30 »
действительно, at() показывает, что перед применением next() я стою на 3-й строке. С 4-й как раз и выводится на печать. Ну и бес с ней-буду выбирать, как показал в самом начале. Спасибо за информацию
Записан
QT4, Qt5, Qt6 Debian, ArchLinux
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...