我只有一个与数据库的连接,用于我正在开发的库存应用程序。
我现在正在做的是每次需要对 dB 进行查询时调用 open(),然后执行 close()。
这样做比仅仅打开连接并保持打开状态有什么好处吗?
最佳答案
像这样打开数据库:
QSqlError MainWindow::addConnection(QString host,QString dbName,QString user,QString pw)
{
QSqlError err;
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName(host);
db.setDatabaseName(dbName);
db.setUserName(user);
db.setPassword(pw);
if (!db.open())
{
qDebug()<<u8"err";
err=db.lastError();
QSqlDatabase db1=QSqlDatabase::database();
QString name = db1.connectionName();
QSqlDatabase::removeDatabase(name);
}
return err;
}
在 main.app 中:
void addConnections(manage *w)
{
QSqlError err=w->addConnection("","","","");
if (err.type()!=QSqlError::NoError)
{
qDebug() << "Unable to open connection:" << err;
}
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
addConnections(&w);
return a.exec();
}
它可以在一开始就打开。每次你想使用它时,只需这样做:
QSqlQuery query;
query.exec("SELECT * FROM data");
如果你有多个链接,你可以在初始化后添加名称并用名称调用它。
关于mysql - QSQLDatabase 在每个事务上打开和关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54048609/