Russian Qt Forum

Qt => Базы данных => Тема начата: Freackle от Октябрь 16, 2011, 19:48



Название: Неверный тип при чтении ключа из БД
Отправлено: Freackle от Октябрь 16, 2011, 19:48
Здравствуйте!
У меня ошибка при чтении ключей

query->prepare("select S_Key from `subject` where S_Name=:S_Name;");
   query->bindValue(":S_Name", Sub);
   query->exec();
   int size =query->size(); //размер 1, тоесть он выбирает нужное мне значение.
   int lol=query->value(0).userType(); //QVariant Invalid не читает его.
   int ololo=query->value(0).toInt(); //Соответственно, записывает сюда ноль.

В базе ключи записаны как INT(10) NOT NULL AUTO_INCREMENT, PRIMARY KEY.
Помогите, пожалуйста.


Название: Re: Неверный тип при чтении ключа из БД
Отправлено: BuRn от Октябрь 16, 2011, 20:16
точно не могу сказать, но мб попробовать
while(query.next())
{
 ... твои присваивания
}


Название: Re: Неверный тип при чтении ключа из БД
Отправлено: Freackle от Октябрь 16, 2011, 20:34
У меня ведь всего одна запись выбирается, я пройду этот цикл один раз. И само это значение оно выбирается, он просто не понимает его тип почему-то.


Название: Re: Неверный тип при чтении ключа из БД
Отправлено: Mikhail от Октябрь 16, 2011, 21:29
Все таки стоит слушать советы и читать документацию.

Все- таки next() сделать требуется, чтобы прочитать первую запись и так далее

For example:
     QSqlQuery query("SELECT country FROM artist");
     while (query.next()) {
         QString country = query.value(0).toString();
         doSomething(country);
     }


Название: Re: Неверный тип при чтении ключа из БД
Отправлено: Freackle от Октябрь 16, 2011, 21:48
Простите, спасибо вам большое.


Название: Re: Неверный тип при чтении ключа из БД
Отправлено: Странник от Октябрь 16, 2011, 23:35
для одной записи можно first() использовать.