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