Russian Qt Forum

Qt => Базы данных => Тема начата: SABROG от Май 11, 2007, 16:44



Название: QSqlQuery получить все данные и закрыть курсор.
Отправлено: SABROG от Май 11, 2007, 16:44
Наступил на те же грабли что и остальные люди при использовании SQLITE, когда в цикле while получаются строки, но необходимо внутри цилка выполнить на каждую из строк еще запросы. Естественно получаю: "database is locked Unable to commit transaction"

Как заставить QSqlQuery забрать все данные и закрыть селект, после чего я уже смог бы пройтись по временному массиву и сделать все что мне надо ?

добавлено спустя:

 Сделал так:

Код:

                while (querySQLITE.next());
                querySQLITE.seek(-1);
                while (querySQLITE.next())
                {
...


Запросы внутри while теперь работают и я даже получаю данные, не смотря на то, что query ругается каждый раз на этой строке:
Код:

query.value(query.record().indexOf("name")).toString();


Врёт ведь гадина, все установлено на валидных записях, это подтверждает правильность возвращаемых значений запросом...
Цитировать

QSqlQuery::value: not positioned on a valid record