我使用 Qt 编写了一个 C++ 程序。我的算法中的一些变量在我的程序之外和网页中发生了变化。每次用户更改网页中的变量值时,我都会修改预先创建的 SQL 数据库。现在我希望我的代码在运行时更改变量值而不停止代码。有两种选择:
每 n 秒检查一次数据库并检索变量
value
- > 这不好,因为我必须检查数据库内容是否每 n 秒更改一次(可能多年来没有任何变化。另外我不想检查数据库是否内容变了)每次更改数据库时,我的 Qt 程序都会发出一个信号,因此通过捕获该信号,我可以刷新变量值,这似乎是一个最佳解决方案,我想为此部分编写代码
我的代码的 C++ 部分是:
void Update Database()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("Mydataset");
db.setUserName("user");
db.setPassword("pass");
if(!db.open())
{
qDebug()<<"Error is: "<<db.lastError();
qFatal("Failed To Connect");
}
QSqlQuery qry;
qry.exec("SELECT * from tblsystemoptions");
QSqlRecord rec = qry.record();
int cols = rec.count();
qry.next();
MCH = qry.value(0).toString(); //some global variables used in other functions
MCh = qry.value(1).toString();
// ... this goes on ...
}