2

How can I get/log all raw sql queries sent to database by QSqlDatabase?

Does QSqlDatabase have any methods or events? Something like this:

    QSqlDatabase db = QSqlDatabase::database(connection->connectionUuid.toString());

    // === SOMETHING LIKE THIS! ===
    db->setLogger([](const QString query) {
        qDebug() << "Query: " << query;
    });
    // = OR =
    connect(db, &QSqlDatabase::QueryExecuted, this, [](const QString query) {
        qDebug() << "Query: " << query;
    });
    // =================

    QSqlQueryModel *model = new QSqlQueryModel();
    model->setQuery("SHOW VARIABLES;", db);
    model->setHeaderData(0, Qt::Horizontal, tr("Variable"));
    model->setHeaderData(1, Qt::Horizontal, tr("Session"));
    model->setHeaderData(2, Qt::Horizontal, tr("Global"));
    ui->tblViewVariables->setModel(model);

I haven't found any events or somethig else in docs of QSqlDatabase and QSqlDriver classes...

Shadow
  • 33,525
  • 10
  • 51
  • 64
Alex_Crack
  • 710
  • 1
  • 4
  • 14

0 Answers0