Название: QSqlQuery::value: not positioned on a valid record Отправлено: Alchazar от Ноябрь 20, 2009, 17:10 Хочу узнать group_id имея group_name, вроде всё элементарно, надо всего лишь сделать так:
Код: QString gr_id; но получаю пустой результат( а в Application output пишет: QSqlQuery::value: not positioned on a valid record Базу использую SQLite, может проблема в том, что я уже обращался к базе? Может надо закрывать базу(отключаться от базы) перед сл. запросом? Код: createConnection(); Название: Re: QSqlQuery::value: not positioned on a valid record Отправлено: MoPDoBoPoT от Ноябрь 20, 2009, 17:19 Из документации к методу QSqlQuery::exec():
Цитата: QtAssistant After the query is executed, the query is positioned on an invalid record and must be navigated to a valid record before data values can be retrieved (for example, using next()). Надо просто спозиционировать указатель на данные. Примерно так:Код
Название: Re: QSqlQuery::value: not positioned on a valid record Отправлено: Alchazar от Ноябрь 20, 2009, 17:27 Такой вариант даёт новую ошибку в Application output:
QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed. Не совсем понимаю при чём тут duplicate connection и что за old connection, откуда он берётся? функция с которой я подключаюсь к ДБ: Код: static bool createConnection() Выяснил где была ошибка, у меня createConnection() вызывался два раза, поэтому и получал ошибку. Название: Re: QSqlQuery::value: not positioned on a valid record Отправлено: Alchazar от Ноябрь 20, 2009, 17:50 Но
Код:
Название: Re: QSqlQuery::value: not positioned on a valid record Отправлено: MoPDoBoPoT от Ноябрь 20, 2009, 18:17 А ошибки в запросе нет? Что возвращает exec()? (текст ошибки можно посмотреть в query_gr.lastError().text())
Скорей ошибка синтаксиса, т.к. по-моему для QSQLite в конце запроса надо ставить ; Если ошибки нет, значит запрос возвращает 0 строк. Что содержит переменная group? Название: Re: QSqlQuery::value: not positioned on a valid record Отправлено: Alchazar от Ноябрь 23, 2009, 10:43 Попробовал добавить ; в конце запроса, но ничего не помогло.
Посмотрел текст ошибки, как вы посоветовали, и выяснил в чём была проблема: no such column: ofisas Unable to execute statement немного исправил запрос и всё заработало "SELECT group_id, group_name FROM groups WHERE group_name = ' " + group+ " ' "); Спасибо за помощь.) |