Я пытаюсь подклассифицировать QSqlTableModel, чтобы конструктор установил базу данных, которая необходима для модели.Подкласс QSqlTableModel для настройки базы данных
Мой код выглядит что-то вдоль линий:
MyClass::myClass(QObject* parent, QSqlDatabase data)
:QSqlTableModel(parent, data)
{
auto db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(":memory:");
if(!db.open())
{
//Some debug info
}
if(!database().isOpen())
{
// Some debug info that is called
}
qDebug() << database().connectionName();
qDebug() << db.connectionName();
}
Тогда конструктор будет:
«»
«qt_sql_default_connection»
Почему две базы данных не подключены по умолчанию связь?
Да, и это то, что я хотел, однако кажется, что соединение по умолчанию никогда не выполняется при вызове QSqlDatabase(). – Paul
Если вы хотите, чтобы эти два соединения были подключены к имени подключения по умолчанию, вам необходимо сделать это: 'auto db = QSqlDatabase :: database();'. – Amartel
Но для того, чтобы получить его для доступа к базе данных SQLite, мне нужно использовать addDatabase (как в моем примере), это также связано с базой данных по умолчанию, проблема в том, что, по-видимому, с помощью 'myclass (this, QSqlDatabase :: database()) 'не создает базу данных с соединением по умолчанию, а только с недопустимой базой данных. – Paul