File tree Expand file tree Collapse file tree 2 files changed +39
-1
lines changed Expand file tree Collapse file tree 2 files changed +39
-1
lines changed Original file line number Diff line number Diff line change @@ -478,7 +478,44 @@ QString QgsMssqlProvider::quotedIdentifier( const QString &value )
478
478
479
479
QString QgsMssqlProvider::defaultValueClause ( int fieldId ) const
480
480
{
481
- return mDefaultValues .value ( fieldId, QString () );
481
+ QString defVal = mDefaultValues .value ( fieldId, QString () );
482
+
483
+ // NOTE: If EvaluateDefaultValues is activated it is impossible to get the defaultValueClause.
484
+ // This also apply to QgsPostgresProvider::defaultValueClause.
485
+ if ( !providerProperty ( EvaluateDefaultValues, false ).toBool () && !defVal.isEmpty () )
486
+ {
487
+ return defVal;
488
+ }
489
+
490
+ return QString ();
491
+ }
492
+
493
+ QVariant QgsMssqlProvider::defaultValue ( int fieldId ) const
494
+ {
495
+ QString defVal = mDefaultValues .value ( fieldId, QString () );
496
+
497
+ if ( providerProperty ( EvaluateDefaultValues, false ).toBool () && !defVal.isEmpty () )
498
+ {
499
+ QString sql = QStringLiteral ( " select %1" )
500
+ .arg ( defVal );
501
+
502
+ QSqlQuery query = createQuery ();
503
+ query.setForwardOnly ( true );
504
+
505
+ if ( !query.exec ( sql ) )
506
+ {
507
+ QgsDebugMsg ( query.lastError ().text () );
508
+ pushError ( tr ( " Could not execute query" ) );
509
+ return QVariant ();
510
+ }
511
+
512
+ if ( !query.next () )
513
+ return QVariant ();
514
+
515
+ return query.value ( 0 );
516
+ }
517
+
518
+ return QVariant ();
482
519
}
483
520
484
521
QString QgsMssqlProvider::storageType () const
Original file line number Diff line number Diff line change @@ -133,6 +133,7 @@ class QgsMssqlProvider final: public QgsVectorDataProvider
133
133
static QString quotedIdentifier ( const QString &value );
134
134
135
135
QString defaultValueClause ( int fieldId ) const override ;
136
+ QVariant defaultValue ( int fieldId ) const override ;
136
137
137
138
// ! Import a vector layer into the database
138
139
static QgsVectorLayerExporter::ExportError createEmptyLayer (
You can’t perform that action at this time.
0 commit comments