4

Qt を使用して C++ プログラムを作成しました。アルゴリズム内のいくつかの変数が、プログラムの外部と Web ページで変更されています。ユーザーが Web ページの変数値を変更するたびに、作成済みの SQL データベースを変更します。ここで、コードを停止することなく、実行時にコードで変数の値を変更する必要があります。2 つのオプションがあります。

  1. n 秒ごとにデータベースをチェックし、変数を取得しますvalue-> n 秒ごとにデータベースの内容が変更されているかどうかを確認する必要があるため、これは良くありません (何年も変更されていない可能性があります。また、データベースが内容が変わります)

  2. データベースが変更されるたびに、私の 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 ...


}
4

2 に答える 2