Russian Qt Forum

Qt => Вопросы новичков => Тема начата: cya-st от Декабрь 14, 2012, 15:41



Название: QSqlQuery приведение
Отправлено: cya-st от Декабрь 14, 2012, 15:41
Всем привет,
на сколько я понимаю QSqlQuery это массив из QSqlRecord елементов, вопрос в том, как можно преобразовать этот клас в QList<QSqlResult>?


Название: Re: QSqlQuery приведение
Отправлено: mutineer от Декабрь 14, 2012, 15:52
Циклом


Название: Re: QSqlQuery приведение
Отправлено: Пантер от Декабрь 14, 2012, 15:53
Код
C++ (Qt)
while (query.next ()) {
 list.push_back (query.record ());
}
 


Название: Re: QSqlQuery приведение
Отправлено: cya-st от Декабрь 14, 2012, 17:14
Циклом
;D ;D ;D
я имел ввиду без использования цикла. QSqlQuery это масив из QSqlRecord, может есть какой нибудь метод преобразования (dynamic_cast может) в QList<QSqlRecord>?


Название: Re: QSqlQuery приведение
Отправлено: mutineer от Декабрь 14, 2012, 17:15
С чего ты взял что это массив из QSqlRecord? Вот именно в плане типизации, а не в плане логического поведения


Название: Re: QSqlQuery приведение
Отправлено: cya-st от Декабрь 14, 2012, 17:18
С чего ты взял что это массив из QSqlRecord? Вот именно в плане типизации, а не в плане логического поведения
не помню, гдето читал. но если логически рассуждать, то должен быть массив, просто индексатора нет


Название: Re: QSqlQuery приведение
Отправлено: mutineer от Декабрь 14, 2012, 17:21
Если логически рассуждать, то совсем не факт что это массив. Вполне возможно, что при вызове next() следующая запись вычитывается из базы данных. Но с точки зрения типизации языка QSqlQuery не является массивом, следовательно скастовать его в массив нельзя


Название: Re: QSqlQuery приведение
Отправлено: cya-st от Декабрь 14, 2012, 17:26
понятно, спасибо за помощь. Мне нужен был индексатор. Прийдется использовать seek()