I created db handling class with Qt's SQL :
// constructor of my db handler class
DBHandler::DBHandler(QObject *parent) : QObject(parent)
{
QSqlDatabase db = QSqlDatabase::addDatabas("QMYSQL", "mydb");
// ... initialization like setUserName(), setPassword()
if(!db.open())
{
QSqlDatabase::removeDatabase("mydb"); // ---- (1)
}
}
// destructor of my db handler class
DBHandler::~DBHandler()
{
QSqlDatabase db = QSqlDatabase::database("mydb");
// ---- (2) ----
if(db.isOpen())
{
db.close();
}
db = QSqlDatabase();
QSqlDatabase::removeDatabase("mydb");
// ---- (2) ----
}
This class is created at program startup, then performs a query using multiple member functions (inside each member function, get a QSqlDatabase instance through database("mydb")
.) and finally deleted at program termination.
As in (1) or (2), do I need to explicitly call the close()
function or removeDatabase
function?
Or is it automatically cleaned up (assuming no connections or queries remained)?
What is correct way of QSqlDatabase clean up?