From 73c56f038e7346f3f6be842a08de791de19d8dc7 Mon Sep 17 00:00:00 2001 From: Roman Lebedev Date: Tue, 27 Jun 2023 04:54:30 +0300 Subject: [PATCH] SqlQuery: add `BindDoubleOrNullValue()` method To facilitate serializing of the two DB fields added by the previous change. --- src/core/sqlquery.cpp | 6 ++++++ src/core/sqlquery.h | 3 +++ 2 files changed, 9 insertions(+) diff --git a/src/core/sqlquery.cpp b/src/core/sqlquery.cpp index a55ddeadd..a342ad476 100644 --- a/src/core/sqlquery.cpp +++ b/src/core/sqlquery.cpp @@ -72,6 +72,12 @@ void SqlQuery::BindFloatValue(const QString &placeholder, const float value) { } +void SqlQuery::BindDoubleOrNullValue(const QString &placeholder, const std::optional value) { + + BindValue(placeholder, value.has_value() ? *value : QVariant()); + +} + void SqlQuery::BindBoolValue(const QString &placeholder, const bool value) { BindValue(placeholder, value ? 1 : 0); diff --git a/src/core/sqlquery.h b/src/core/sqlquery.h index 39e52ac6a..3e9ac1162 100644 --- a/src/core/sqlquery.h +++ b/src/core/sqlquery.h @@ -22,6 +22,8 @@ #include "config.h" +#include + #include #include #include @@ -40,6 +42,7 @@ class SqlQuery : public QSqlQuery { void BindLongLongValue(const QString &placeholder, const qint64 value); void BindLongLongValueOrZero(const QString &placeholder, const qint64 value); void BindFloatValue(const QString &placeholder, const float value); + void BindDoubleOrNullValue(const QString &placeholder, const std::optional value); void BindBoolValue(const QString &placeholder, const bool value); void BindNotNullIntValue(const QString &placeholder, const int value);