나는 항상 아래 코드를 사용하여 sqlite 데이터베이스에 연결합니다. 몇 가지 이유로 QSqlDatabase
대신 *QSqlDatabase
을 사용하는 방식으로 다시 작성하기로 결정했습니다.QSqlDatabase를 사용할 때 "&"를 사용하면 왜 오류가 발생합니까 (Qt 5.2)?
내가 한 것은 내 이전 코드 (Line_12) 앞에 &
을 사용하는 것이 었습니다. 그러나 코드는 줄 6에서 충돌합니다.
어쨌든, 누군가 내게 준 line_14 그리고 그것은 작동합니다.
그래서 ... 이해할 수 없습니다. 첫 번째 코드에 무엇이 잘못되었으며, 왜 제안 된 코드로 이 작동하는지 알 수 없습니다. 라인 12에서
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");
}