我总是使用下面的代码连接到 sqlite 数据库。由于某些原因,我决定以使用*QSqlDatabase
而不是QSqlDatabase
.
我所做的只是在我的旧代码( Line_12 )&
前面使用。但代码在第 6 行崩溃。
无论如何,有人给了我line_14并且它有效。
所以......我不明白我的第一个代码有什么问题以及为什么建议的代码使它工作。
Foo::Foo(QString path_="db_path_name") {
InitialDataBase(path_);
bool isOpened = db->open();
if(!isOpened) exit(1);
else
queryExecutor = new QSqlQuery(*db); // --> Line_6
}
void Foo::InitialDataBase(QString path_) {
// Line_12 => DOESN'T WORK
db = &(QSqlDatabase::addDatabase("QSQLITE"));
// Line_14 => WORK
db = new QSqlDatabase(QSqlDatabase::addDatabase("QSQLITE"));
db->setHostName("localhost");
db->setDatabaseName(path_);
db->setUserName("admin");
db->setPassword("admin");
}