aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingsql.h
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/plugins/scriptingsql.h')
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/plugins/scriptingsql.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingsql.h b/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingsql.h
new file mode 100644
index 0000000..7b8fd3b
--- /dev/null
+++ b/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingsql.h
@@ -0,0 +1,46 @@
+#ifndef SCRIPTINGSQL_H
+#define SCRIPTINGSQL_H
+
+#include "builtinplugin.h"
+#include "scriptingplugin.h"
+
+class ScriptingSql : public BuiltInPlugin, public DbAwareScriptingPlugin
+{
+ Q_OBJECT
+
+ SQLITESTUDIO_PLUGIN_TITLE("SQL scripting")
+ SQLITESTUDIO_PLUGIN_DESC("SQL scripting support.")
+ SQLITESTUDIO_PLUGIN_VERSION(10000)
+ SQLITESTUDIO_PLUGIN_AUTHOR("sqlitestudio.pl")
+
+ public:
+ class SqlContext : public Context
+ {
+ public:
+ QString errorText;
+ QHash<QString,QVariant> variables;
+ };
+
+ ScriptingSql();
+ ~ScriptingSql();
+
+ QString getLanguage() const;
+ Context* createContext();
+ void releaseContext(Context* context);
+ void resetContext(Context* context);
+ QVariant evaluate(Context* context, const QString& code, const QList<QVariant>& args, Db* db, bool locking);
+ QVariant evaluate(const QString& code, const QList<QVariant>& args, Db* db, bool locking, QString* errorMessage);
+ void setVariable(Context* context, const QString& name, const QVariant& value);
+ QVariant getVariable(Context* context, const QString& name);
+ bool hasError(Context* context) const;
+ QString getErrorMessage(Context* context) const;
+ QString getIconPath() const;
+ bool init();
+ void deinit();
+
+ private:
+ QList<Context*> contexts;
+ Db* memDb = nullptr;
+};
+
+#endif // SCRIPTINGSQL_H