[英]How to Handle Database Connections in Qt?
在这里我的问题; 在这种情况下,它抱怨具有相同连接名称的重复连接:
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();
}
我的解决方案:
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();
}
1-)这是处理这个问题的好方法吗?
2-)你还有其他建议吗?
3-)你认为这是Qt的缺点吗?
static
部分添加数据库连接。 每次初始化Test
类时都不执行。 您可以使用setup
功能来处理所有工作。 只需给你的连接不同的名字:
int main(int argc, char *argv[])
{
QString connectionName("test");
QString connectionName2("test2");
QCoreApplication a(argc, argv);
Test myDb(connectionName);
Test myDb2(connectionName2);
return a.exec();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.