diff --git a/src/providers/mssql/qgsmssqlexpressioncompiler.cpp b/src/providers/mssql/qgsmssqlexpressioncompiler.cpp index 728eda07ea7..b7d5f259372 100644 --- a/src/providers/mssql/qgsmssqlexpressioncompiler.cpp +++ b/src/providers/mssql/qgsmssqlexpressioncompiler.cpp @@ -18,7 +18,7 @@ QgsMssqlExpressionCompiler::QgsMssqlExpressionCompiler( QgsMssqlFeatureSource *source ) : QgsSqlExpressionCompiler( source->mFields, - QgsSqlExpressionCompiler::LikeIsCaseInsensitive | QgsSqlExpressionCompiler::CaseInsensitiveStringMatch ) + QgsSqlExpressionCompiler::LikeIsCaseInsensitive | QgsSqlExpressionCompiler::CaseInsensitiveStringMatch | QgsSqlExpressionCompiler::IntegerDivisionResultsInInteger ) { } @@ -78,3 +78,8 @@ QString QgsMssqlExpressionCompiler::quotedValue( const QVariant &value, bool &ok return QgsSqlExpressionCompiler::quotedValue( value, ok ); } } + +QString QgsMssqlExpressionCompiler::castToReal( const QString &value ) const +{ + return QStringLiteral( "CAST((%1) AS REAL)" ).arg( value ); +} diff --git a/src/providers/mssql/qgsmssqlexpressioncompiler.h b/src/providers/mssql/qgsmssqlexpressioncompiler.h index 4a9738e93d1..16f29f3779a 100644 --- a/src/providers/mssql/qgsmssqlexpressioncompiler.h +++ b/src/providers/mssql/qgsmssqlexpressioncompiler.h @@ -29,6 +29,7 @@ class QgsMssqlExpressionCompiler : public QgsSqlExpressionCompiler protected: Result compileNode( const QgsExpressionNode *node, QString &result ) override; QString quotedValue( const QVariant &value, bool &ok ) override; + QString castToReal( const QString &value ) const override; };