Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Implemented method QgsMssqlProvider::defaultValue
  • Loading branch information
domi4484 committed Sep 14, 2020
1 parent a715e50 commit 53c0d40
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 1 deletion.
39 changes: 38 additions & 1 deletion src/providers/mssql/qgsmssqlprovider.cpp
Expand Up @@ -478,7 +478,44 @@ QString QgsMssqlProvider::quotedIdentifier( const QString &value )

QString QgsMssqlProvider::defaultValueClause( int fieldId ) const
{
return mDefaultValues.value( fieldId, QString() );
QString defVal = mDefaultValues.value( fieldId, QString() );

// NOTE: If EvaluateDefaultValues is activated it is impossible to get the defaultValueClause.
// This also apply to QgsPostgresProvider::defaultValueClause.
if ( !providerProperty( EvaluateDefaultValues, false ).toBool() && !defVal.isEmpty() )
{
return defVal;
}

return QString();
}

QVariant QgsMssqlProvider::defaultValue( int fieldId ) const
{
QString defVal = mDefaultValues.value( fieldId, QString() );

if ( providerProperty( EvaluateDefaultValues, false ).toBool() && !defVal.isEmpty() )
{
QString sql = QStringLiteral( "select %1" )
.arg( defVal );

QSqlQuery query = createQuery();
query.setForwardOnly( true );

if ( !query.exec( sql ) )
{
QgsDebugMsg( query.lastError().text() );
pushError( tr( "Could not execute query" ) );
return QVariant();
}

if ( !query.next() )
return QVariant();

return query.value( 0 );
}

return QVariant();
}

QString QgsMssqlProvider::storageType() const
Expand Down
1 change: 1 addition & 0 deletions src/providers/mssql/qgsmssqlprovider.h
Expand Up @@ -133,6 +133,7 @@ class QgsMssqlProvider final: public QgsVectorDataProvider
static QString quotedIdentifier( const QString &value );

QString defaultValueClause( int fieldId ) const override;
QVariant defaultValue( int fieldId ) const override;

//! Import a vector layer into the database
static QgsVectorLayerExporter::ExportError createEmptyLayer(
Expand Down

0 comments on commit 53c0d40

Please sign in to comment.