Я написал программу на C++, используя Qt. некоторые переменные внутри моего алгоритма изменяются вне моей программы и на веб-странице. каждый раз, когда пользователь изменяет значения переменных на веб-странице, я изменяю предварительно созданную базу данных 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 ...
}