Russian Qt Forum

Qt => Model-View (MV) => Тема начата: maks1596 от Январь 16, 2017, 20:01



Название: QSqTablelModel не видит таблицу
Отправлено: maks1596 от Январь 16, 2017, 20:01
Таблицу в базе данных SQLite 3 создавал через SQLiteStudio. При попытке установки таблицы в модель, возникает ошибка "не найдена таблица имечко". Модель в данном случае QSqlTableModel, а представление QTableView.
Код
C++ (Qt)
m_DBHelper.connect();
 
m_model.setTable("Formula");
m_model.select();
qDebug() << m_model.lastError().driverText();
 

Метод DataBaseHelper::connect() соединение с базой устанавливает корректно.
Код
C++ (Qt)
bool DataBaseHelper::connect() {
   QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
   db.setDatabaseName("Formulas.sqlite");
   if(!db.open()) {
       qDebug() << "Не удалось открыть БД: " << db.lastError().text();
       return false;
   }
   qDebug() << db.tables();
   return true;
}
 

В дебаг выводит следующее:
Цитировать
("Formula", "sqlite_sequence")
"Unable to find table Formula"

Небольшое уточнение о том, что запросы к базе данных проходят корректно, но хочется именно реализовать модель-представление из-за неплохой стратегии редактирования модели и лени реализовывать её самому.



Название: Re: QSqTablelModel не видит таблицу
Отправлено: maks1596 от Январь 16, 2017, 20:38
Вопрос благополучно решился созданием модели в куче, а именно
Код
C++ (Qt)
m_model = new QSqlTableModel(this, QSqlDatabase::database());