From 963f08c8635db9d87ff01ec63c04ce40f34b1af0 Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Fri, 7 Feb 2025 14:44:19 +1000 Subject: [PATCH] [mssql] Ignore unset attributes when changing attribute values, adding features --- src/providers/mssql/qgsmssqlprovider.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/providers/mssql/qgsmssqlprovider.cpp b/src/providers/mssql/qgsmssqlprovider.cpp index 5396c7bec5a..19f0417dc64 100644 --- a/src/providers/mssql/qgsmssqlprovider.cpp +++ b/src/providers/mssql/qgsmssqlprovider.cpp @@ -1202,6 +1202,9 @@ bool QgsMssqlProvider::addFeatures( QgsFeatureList &flist, Flags flags ) if ( fld.name().isEmpty() ) continue; // invalid + if ( attrs.at( i ).userType() == qMetaTypeId< QgsUnsetAttributeValue >() ) + continue; + if ( mDefaultValues.contains( i ) && mDefaultValues.value( i ) == attrs.at( i ).toString() ) continue; // skip fields having default values @@ -1300,6 +1303,9 @@ bool QgsMssqlProvider::addFeatures( QgsFeatureList &flist, Flags flags ) if ( fld.name().isEmpty() ) continue; // invalid + if ( attrs.at( i ).userType() == qMetaTypeId< QgsUnsetAttributeValue >() ) + continue; + if ( mDefaultValues.contains( i ) && mDefaultValues.value( i ) == attrs.at( i ).toString() ) continue; // skip fields having default values @@ -1554,6 +1560,9 @@ bool QgsMssqlProvider::changeAttributeValues( const QgsChangedAttributesMap &att if ( fld.name().isEmpty() ) continue; // invalid + if ( it2.value().userType() == qMetaTypeId< QgsUnsetAttributeValue >() ) + continue; + if ( mComputedColumns.contains( fld.name() ) ) continue; // skip computed columns because they are done server side. @@ -1593,6 +1602,9 @@ bool QgsMssqlProvider::changeAttributeValues( const QgsChangedAttributesMap &att if ( fld.name().isEmpty() ) continue; // invalid + if ( it2.value().userType() == qMetaTypeId< QgsUnsetAttributeValue >() ) + continue; + if ( mComputedColumns.contains( fld.name() ) ) continue; // skip computed columns because they are done server side.