gpt4 book ai didi

mysql - QSQLDatabase 在每个事务上打开和关闭?

转载 作者:行者123 更新时间:2023-11-29 16:29:13 26 4
gpt4 key购买 nike

我只有一个与数据库的连接,用于我正在开发的库存应用程序。

我现在正在做的是每次需要对 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com