From: APTX Date: Mon, 2 Mar 2026 11:42:52 +0000 (+0900) Subject: Fix SQL in scripts X-Git-Url: https://gitweb.tyo.aptx.org/?a=commitdiff_plain;h=c9bf5731425b4afff4c339199d5469366199b0ac;p=localmylist.git Fix SQL in scripts This fixes the Reports tab --- diff --git a/localmylist/reportengine.cpp b/localmylist/reportengine.cpp index e2876ca..8498ca1 100644 --- a/localmylist/reportengine.cpp +++ b/localmylist/reportengine.cpp @@ -18,8 +18,22 @@ ReportEngine::ReportEngine(QObject *parent) : QSqlQuery ReportEngine::query() const { - QSqlQuery q = m_engine->globalObject().property("query").toVariant().value(); - qDebug() << q.lastError(); + auto jsValue = m_engine->globalObject().property("query"); + if (!jsValue.isQObject()) + { + return QSqlQuery{}; + } + auto qobject = jsValue.toQObject(); + auto tmp = qobject_cast(qobject); + if (!tmp) + { + return QSqlQuery{}; + } + QSqlQuery q = tmp->takeQuery(); + if (q.lastError().isValid()) + { + qDebug() << q.lastError(); + } return q; } @@ -34,7 +48,7 @@ void ReportEngine::run(const QString &report) { m_engine->evaluate(report); if (m_engine->hasError()) - qDebug() << m_engine->catchError().toString(); + qDebug() << "Report Error: " << m_engine->catchError().toString(); } } // namespace LocalMyList diff --git a/localmylist/scriptable.cpp b/localmylist/scriptable.cpp index 746e625..edf6d45 100644 --- a/localmylist/scriptable.cpp +++ b/localmylist/scriptable.cpp @@ -706,11 +706,5 @@ void DatabaseConnectionSettings::write_database(QString val) { database = val; } // -------------------------------------------------------------------------------- -QJSValue toSearchQuery(QJSEngine *engine) -{ - // TODO - return {}; -} - } // namespace Scriptable } // namespace LocalMyList diff --git a/localmylist/scriptable.h b/localmylist/scriptable.h index f8e61d2..cfd626f 100644 --- a/localmylist/scriptable.h +++ b/localmylist/scriptable.h @@ -716,7 +716,6 @@ public: void write_database(QString val); }; -QJSValue toSearchQuery(QJSEngine *engine); } // namespace Scriptable } // namespace LocalMyList diff --git a/localmylist/scriptablesql.cpp b/localmylist/scriptablesql.cpp index 6473189..40734e0 100644 --- a/localmylist/scriptablesql.cpp +++ b/localmylist/scriptablesql.cpp @@ -20,6 +20,8 @@ namespace Scriptable { SqlQuery::SqlQuery(QObject *parent) : QObject(parent) {} +QSqlQuery &&SqlQuery::takeQuery() { return std::move(query); } + bool SqlQuery::prepare(const QString &sql) { QString tmp = sql; diff --git a/localmylist/scriptablesql.h b/localmylist/scriptablesql.h index b718f60..fe2f311 100644 --- a/localmylist/scriptablesql.h +++ b/localmylist/scriptablesql.h @@ -17,7 +17,8 @@ namespace Scriptable { class LOCALMYLISTSHARED_EXPORT SqlQuery : public QObject { Q_OBJECT public: - SqlQuery(QObject *parent = 0); + Q_INVOKABLE SqlQuery(QObject *parent = 0); + QSqlQuery &&takeQuery(); public slots: bool prepare(const QString &sql);