Название: не дополучаю содержимое запроса Отправлено: mokynis от Февраль 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, в которой отображается модель, все равно на печати отсутствуют несколько первых строк. Название: Re: не дополучаю содержимое запроса Отправлено: crossly от Февраль 04, 2010, 14:05 При переходе на по TableView QSqlQuery::seek не вызывается.... а вызывается он в методе data модели.... т. е. по идее при QSqlQuery qry=this->query(); позиция в запросе должна быть в строке для которой последним вызывался data модели.... каламбур... но надеюсь понятно??
Название: Re: не дополучаю содержимое запроса Отправлено: CroCIV от Февраль 04, 2010, 14:36 нет )))) не понятно, прям талантище для написания курсовых и дипломов ;D
Название: Re: не дополучаю содержимое запроса Отправлено: mokynis от Февраль 04, 2010, 14:43 Цитировать надеюсь понятно?? не особо :(Если я на первой строке стою, то для нее и вызывается data (у меня подробно раскрывается выбранная запись). Ну, не будет в распечатке первой записи, так у меня их штук несколько отсутствует. Название: Re: не дополучаю содержимое запроса Отправлено: CroCIV от Февраль 04, 2010, 14:51 mokynis, а что возвращает тебе qry.at()?
Название: Re: не дополучаю содержимое запроса Отправлено: CroCIV от Февраль 04, 2010, 14:56 попробуй еще предварительно перед выполнением запроса установить setForwardOnly(true) и потом выполнение запроса, потом at() что вернет.
В твоем случае setForwardOnly(true) больше подходит, тебе же не надо выполнять замысловатую навигацию по запросу, просто данные получить ? Название: Re: не дополучаю содержимое запроса Отправлено: crossly от Февраль 04, 2010, 15:04 Цитировать надеюсь понятно?? не особо :(Если я на первой строке стою, то для нее и вызывается data (у меня подробно раскрывается выбранная запись). Ну, не будет в распечатке первой записи, так у меня их штук несколько отсутствует. Название: Re: не дополучаю содержимое запроса Отправлено: CroCIV от Февраль 04, 2010, 15:19 кароче так, при QSqlQuery qry=this->query();
qry уже имеет смещенный индекс активной записи, когда он был смещен и почему, это надо шерстить this и на самом деле да, если this - это некоторый указатель на объект, имеющий собственную модель, то, как метко заметил crossly индекс активного элемента модели НЕ одно и тоже, что и индекс активной записи запроса, т.е. можно индекс модели this-a менять как угодно от этого индекс активной записи запроса не изменится, до покуда не будет выполнено непосредственное обращение к данным запроса каламбур? Название: Re: не дополучаю содержимое запроса Отправлено: crossly от Февраль 04, 2010, 15:31 примерно то же что и у меня :).... короче.... когда ты ходишь по вьюхе ты по сути дела работаешь с itemselectionmodel... метод data модели вызывается при создании/обновлении модели... но никак не при выделении ....
Название: Re: не дополучаю содержимое запроса Отправлено: mokynis от Февраль 05, 2010, 09:30 действительно, at() показывает, что перед применением next() я стою на 3-й строке. С 4-й как раз и выводится на печать. Ну и бес с ней-буду выбирать, как показал в самом начале. Спасибо за информацию
|