met*_*dos 5 c++ qt database-connection mysql-management database-management
在这里我的问题; 在这种情况下,它抱怨具有相同连接名称的重复连接:
Test::Test(QString connectionName)
{
db=QSqlDatabase::addDatabase("QMYSQL",connectionName);
}
int main(int argc, char *argv[])
{
QString connectionName=QString("test");
QCoreApplication a(argc, argv);
Test myDb(connectionName);
Test myDb2(connectionName);
return a.exec();
}
Run Code Online (Sandbox Code Playgroud)
我的解决方案:
Test::Test(QString connectionName)
{
if(!QSqlDatabase::contains(connectionName))
db=QSqlDatabase::addDatabase("QMYSQL",connectionName);
else
db=QSqlDatabase::database(connectionName);
}
int main(int argc, char *argv[])
{
QString connectionName=QString("test");
QCoreApplication a(argc, argv);
{
Test myDb(connectionName);
Test myDb2(connectionName);
}
QSqlDatabase::removeDatabase(connectionName);
return a.exec();
}
Run Code Online (Sandbox Code Playgroud)
1-)这是处理这个问题的好方法吗?
2-)你还有其他建议吗?
3-)你认为这是Qt的缺点吗?
static我更喜欢在代码的一部分中添加数据库连接。Test不是每次初始化类时都执行。您可以使用一个setup函数来处理所有这些工作。