У меня есть класс, полученный из QSqlRelationalTableModel
.Я использую базу данных SQLite.И мне нужно изменить файл базы данных.Я закрываю старый файл базы данных, вызываю SetDatabaseName («путь к новому файлу») и открываю новый файл базы данных.Теперь я просто вызываю select () для модели, но она возвращает false.И если я вызываю setTable ("table") и только после этого select (), все работает ... Но имя таблицы одинаковое ...
Я не нашел ни одного метода, который бы позволялсообщить модели, что соединение с базой данных было изменено .... Знаете ли вы лучший способ сообщить модели?
ОК.Я вернулся к этой теме еще раз.
После того, как БД изменена, я должен вызвать setTable () с тем же именем таблицы, чтобы переустановить модель таблицы.И я не нашел лучшего способа переустановить табличное представление, поэтому я вызываю
pTableView->setModel(NULL);
pTableView->setModel(model);
. Это генерирует много ненужных вызовов кода, но в другом случае табличное представление не знает об изменениях в табличной модели (например количество столбцов).
Я не нашел лучшего способа для повторной инициализации QSqlTableModel
и QTableView
.Некоторые идеи?