Вам нужно инициализировать QSqlQuery
с помощью конструктора QSqlQuery(QSqlDatabase db)
.
Для этого вам нужно будет использовать списки инициализаторов в конструкторе и уже настроить соединение с БД или использовать указатели для инициализации QSqlQuery
позже.
С конструктором ABC
, принимающим инициализированную БД (создайте БД в основном):
ABC(QSqlDatabase _db) :
db(_db),
memberQuery(db)
{
Q_ASSERT(db.isOpen());
}
Или
class ABC
{
QSqlDatabase db;
QSqlQuery* memberQueryPtr;
public:
ABC() : db(QSqlDatabase::addDatabase("QSQLITE")),memberQueryPtr(0)
{
db.setDatabaseName("test");
if (!db.open())
return;
memberQueryPtr = new QSqlQuery(db);
}
~ABC()
{
delete memberQueryPtr; memberQueryPtr = 0;
}
// ...
};