我与数据库具有单一连接,可用于正在开发的清单应用程序中。
我现在正在做的是每次需要对dB进行查询然后调用close()时都调用open()。
这样做有什么好处,而不仅仅是打开连接并保持打开状态?
答案 0 :(得分:0)
像这样打开数据库:
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");
如果有多个链接,则只需在初始化后添加名称,然后使用名称进行调用即可。