Russian Qt Forum

Qt => Базы данных => Тема начата: Max Payne от Май 16, 2010, 23:30



Название: Ошибка при чтении с базы данных
Отправлено: Max Payne от Май 16, 2010, 23:30
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setHostName("locallhost");
db.setDatabaseName("Help - F3");
db.setUserName("Max");
db.setPassword("qwerty");
if (!db.open("Max","qwerty"))
{
QMessageBox::critical(0,"Critical Error",db.lastError().databaseText());
return;
}
else
QMessageBox::information(0,"Ok","Conectoin complete");
QSqlQuery query(db);
query.exec("SELECT * FROM path ");
while (query.next())
{
QString tr = query.value(1).toString();
}
тр = "" при дебаг , тоесть пустая... Не могу понять где ошибка... База точно не пустая и соединение есть...
Помогите кто знает где ошибка?
Если записывать в переменную QVariant, debug пишет invalid..


Название: Re: Ошибка при чтении с базы данных
Отправлено: Chase от Май 17, 2010, 02:31
попрообуй вместо query.exec("SELECT * FROM path ");

query.prepare("SELECT * FROM path ");
query.exec();


Название: Re: Ошибка при чтении с базы данных
Отправлено: Wlad_C от Май 17, 2010, 07:35
while (query.next())
{
QString tr = query.value(1).toString();
}

Ты читаешь в цикле второе поле таблицы path, и хочешь получить его текстовое представление.
По выходе из цикла, в tr будет последнее значение второго поля.


Название: Re: Ошибка при чтении с базы данных
Отправлено: ecspertiza от Май 17, 2010, 08:10
Еще в Qt есть такая ф-ция tr() поэтому могут быть колизии, назови переменную по другому может поможет.


Название: Re: Ошибка при чтении с базы данных
Отправлено: Sahab от Май 17, 2010, 10:43
db.setUserName("Max");
db.setPassword("qwerty");

в SqLite?

а это что?
Цитировать
db.setHostName("locallhost");


з.ы. "Conectoin complete"