Files
qt6-migration-pipeline/Z/src/ngldb/nsqlquery.h
T
2026-07-14 12:07:36 +02:00

223 lines
3.0 KiB
C++
Executable File

#pragma once
#include <QtSql/QSqlQuery>
#include "ngldb_export.h"
#include "dbcommon.h"
namespace NGL
{
class INGLLogger;
}
class QDateTime;
class QJsonValue;
class NGLDB_EXPORT NSqlQuery final : public QSqlQuery
{
public:
explicit NSqlQuery(const QSqlDatabase &db);
explicit NSqlQuery(const QSqlDatabase &db, NGL::INGLLogger &logger);
explicit NSqlQuery(const QString &query, const QSqlDatabase &db);
explicit NSqlQuery(const QString &query, const QSqlDatabase &db, NGL::INGLLogger &logger);
NSqlQuery(const NSqlQuery &other) = default;
~NSqlQuery() = default;
void addBindValue(const QVariant &val, QSql::ParamType paramType = QSql::In);
int at() const;
void bindValue(const QString &placeholder, const QVariant &val, QSql::ParamType paramType = QSql::In);
void bindValue(int pos, const QVariant &val, QSql::ParamType paramType = QSql::In);
QVariant boundValue(const QString &placeholder) const;
QVariant boundValue(int pos) const;
QMap<QString, QVariant> boundValues() const;
void clear();
const QSqlDriver *driver() const;
bool exec(const QString &query, bool bEmitMessageOnError = true);
bool exec(bool bEmitMessageOnError = true);
bool execAndFetch();
bool execAndFetch(const QString &query);
bool execBatch(BatchExecutionMode mode = ValuesAsRows);
QString executedQuery() const;
void finish();
bool first();
bool isActive() const;
bool isForwardOnly() const;
bool isNull(int field) const;
bool isSelect() const;
bool isValid() const;
bool last();
QSqlError lastError() const;
QString sqlstate();
QVariant lastInsertId();
QString lastQuery() const;
bool next();
bool nextResult();
int numRowsAffected() const;
QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const;
bool prepare(const QString &query);
bool previous();
QSqlRecord record() const;
const QSqlResult *result() const;
bool seek(int index, bool relative = false);
void setForwardOnly(bool forward);
void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy precisionPolicy);
int size() const;
QVariant value(int index) const;
NSqlQuery &operator= (const NSqlQuery &other);
bool export2CSV(const QString &filename);
static QVariant qDateTimeToQVariant(const QDateTime &dt);
static QDateTime qVariantToQDateTime(const QVariant &var);
static QString qVariantToJsonString(const QVariant &value);
static QString jsonValueToJsonString(const QJsonValue &value);
static inline QString fixupEmptyJsonString(const QString &str) { return str.isEmpty() ? QLatin1String("{}") : str; }
QString getLastSqlError();
private:
void printLastSqlError();
QSqlDatabase m_db;
NGL::INGLLogger &mLogger;
};