Название: QSQLQuery метод first() Отправлено: jaroslav от Июнь 18, 2013, 15:01 Не могу понять, почему метод first() не позиционирует курсор на первую запись.
Например: Код: while (stored.next()){ Второй цикл уже не будет работать. next() сразу же вернет false; Название: Re: QSQLQuery метод first() Отправлено: mutineer от Июнь 18, 2013, 15:04 Может проблема в опечатке?
srored.first(); Название: Re: QSQLQuery метод first() Отправлено: Hellraiser от Июнь 18, 2013, 15:12 Если не опечатка, то надо проверить возврат от функции isForwardOnly(). Если тру, то движение обратно невозможно.
Название: Re: QSQLQuery метод first() Отправлено: jaroslav от Июнь 18, 2013, 16:06 Это здесь опечатка, в коде все окей. :)
isForwardOnly возвращает true, хотя устанавливаю для stored setForwardOnly(false); Какие варианты решение можете порекомендовать? Название: Re: QSQLQuery метод first() Отправлено: Hellraiser от Июнь 18, 2013, 16:30 setForwardOnly(false) надо звать до выполнения запроса, false по умолчанию уже задано. Также, направленность курсора в запросе сильно зависит от драйвера и СУБД. Ассистент как-бы на это намекает:
Цитировать Setting forward only to false is a suggestion to the database engine, which has the final say on whether a result set is forward only or scrollable. . Возможно даже придется переисполнить запрос.Название: Re: QSQLQuery метод first() Отправлено: jaroslav от Июнь 18, 2013, 16:32 setForwardOnly(false) устанавливается до выполнения запроса.
Название: Re: QSQLQuery метод first() Отправлено: lit-uriy от Июнь 18, 2013, 18:15 >>isForwardOnly возвращает true, хотя устанавливаю для stored setForwardOnly(false);
значит нет других вариантов, значит возможно только движение вперёд Название: Re: QSQLQuery метод first() Отправлено: jaroslav от Июнь 19, 2013, 12:40 Такая штука получается, если в ХП добавить SET ROWCOUNT Х, то first() начинает фурычить, иначе только forward only.
Название: Re: QSQLQuery метод first() Отправлено: jaroslav от Июнь 19, 2013, 12:49 Решено. Всем спасибо за ответы.
|