Есть слушающая таблица - foods:
void MainWindow:: createConnection()
{
dbase = QSqlDatabase::addDatabase("QSQLITE", "foods");
dbase.setDatabaseName(databaseName + ".db");
dbase.open();
if (!dbase.open()) {
msgBox.setText("Cant connect to database.Cant open datbase file.");
msgBox.exec();
}
else
{
QSqlQuery d(dbase);
d.prepare("SELECT COUNT(*) FROM foods");
d.exec();
int rows ;
if (d.next()) {
rows= d.value(0).toInt();
}
d.prepare("SELECT * FROM foods");
d.exec();
int columns= d.record().count();
ui->tableWidget->setColumnCount(columns);
ui->tableWidget-> setRowCount(rows);
for (int var = 0; var < columns; ++var)
{
ui->tableWidget->setHorizontalHeaderItem(var, new QTableWidgetItem(d.record().fieldName(var)));
}
if( d.prepare("SELECT name FROM foods"));
{
d.exec();
QList<QVariant> V;
if (d.next()) {
V= d.value(0).toList();
}
for (int var = 0; var < rows; ++var)
{
ui->tableWidget->item(var,0)->setText(V.at(var).toString());
}
}
}
}
Причем, вот эта часть :
d.prepare("SELECT COUNT(*) FROM foods");
d.exec();
int rows ;
if (d.next()) {
rows= d.value(0).toInt();
}
- возвращает реальное число строк таблицы,
но список V - остается пустым на 0 элементов:
if( d.prepare("SELECT name FROM foods"));
{
d.exec();
QList<QVariant> V;
if (d.next()) {
V= d.value(0).toList();
}
Уже и пробовал создавать новый запрос QSqlQuery - d1 и на нем запрос выполнить, но результат такой же.