@@ -754,6 +754,10 @@ bool QgsMssqlProvider::addFeatures( QgsFeatureList & flist )
754
754
statement = QString ( " INSERT INTO [%1].[%2] (" ).arg ( mSchemaName , mTableName );
755
755
756
756
bool first = true ;
757
+ if ( !mDatabase .isOpen () )
758
+ {
759
+ mDatabase = GetDatabase ( mService , mHost , mDatabaseName , mUserName , mPassword );
760
+ }
757
761
QSqlQuery query = QSqlQuery ( mDatabase );
758
762
query.setForwardOnly ( true );
759
763
@@ -951,6 +955,10 @@ bool QgsMssqlProvider::addAttributes( const QList<QgsField> &attributes )
951
955
statement += QString ( " [%1] %2" ).arg ( it->name (), type );
952
956
}
953
957
958
+ if ( !mDatabase .isOpen () )
959
+ {
960
+ mDatabase = GetDatabase ( mService , mHost , mDatabaseName , mUserName , mPassword );
961
+ }
954
962
QSqlQuery query = QSqlQuery ( mDatabase );
955
963
query.setForwardOnly ( true );
956
964
if ( !query.exec ( statement ) )
@@ -979,6 +987,11 @@ bool QgsMssqlProvider::deleteAttributes( const QgsAttributeIds &attributes )
979
987
statement += QString ( " [%1]" ).arg ( mAttributeFields [*it].name () );
980
988
}
981
989
990
+ if ( !mDatabase .isOpen () )
991
+ {
992
+ mDatabase = GetDatabase ( mService , mHost , mDatabaseName , mUserName , mPassword );
993
+ }
994
+
982
995
QSqlQuery query = QSqlQuery ( mDatabase );
983
996
query.setForwardOnly ( true );
984
997
@@ -1015,6 +1028,10 @@ bool QgsMssqlProvider::changeAttributeValues( const QgsChangedAttributesMap & at
1015
1028
statement = QString ( " UPDATE [%1].[%2] SET " ).arg ( mSchemaName , mTableName );
1016
1029
1017
1030
bool first = true ;
1031
+ if ( !mDatabase .isOpen () )
1032
+ {
1033
+ mDatabase = GetDatabase ( mService , mHost , mDatabaseName , mUserName , mPassword );
1034
+ }
1018
1035
QSqlQuery query = QSqlQuery ( mDatabase );
1019
1036
query.setForwardOnly ( true );
1020
1037
@@ -1121,6 +1138,10 @@ bool QgsMssqlProvider::changeGeometryValues( QgsGeometryMap & geometry_map )
1121
1138
QString statement;
1122
1139
statement = QString ( " UPDATE [%1].[%2] SET " ).arg ( mSchemaName , mTableName );
1123
1140
1141
+ if ( !mDatabase .isOpen () )
1142
+ {
1143
+ mDatabase = GetDatabase ( mService , mHost , mDatabaseName , mUserName , mPassword );
1144
+ }
1124
1145
QSqlQuery query = QSqlQuery ( mDatabase );
1125
1146
query.setForwardOnly ( true );
1126
1147
@@ -1190,6 +1211,10 @@ bool QgsMssqlProvider::deleteFeatures( const QgsFeatureIds & id )
1190
1211
featureIds += " ," + FID_TO_STRING ( *it );
1191
1212
}
1192
1213
1214
+ if ( !mDatabase .isOpen () )
1215
+ {
1216
+ mDatabase = GetDatabase ( mService , mHost , mDatabaseName , mUserName , mPassword );
1217
+ }
1193
1218
QSqlQuery query = QSqlQuery ( mDatabase );
1194
1219
query.setForwardOnly ( true );
1195
1220
QString statement;
@@ -1221,6 +1246,10 @@ bool QgsMssqlProvider::createSpatialIndex()
1221
1246
if ( mUseEstimatedMetadata )
1222
1247
UpdateStatistics ( false );
1223
1248
1249
+ if ( !mDatabase .isOpen () )
1250
+ {
1251
+ mDatabase = GetDatabase ( mService , mHost , mDatabaseName , mUserName , mPassword );
1252
+ }
1224
1253
QSqlQuery query = QSqlQuery ( mDatabase );
1225
1254
query.setForwardOnly ( true );
1226
1255
QString statement;
@@ -1250,6 +1279,10 @@ bool QgsMssqlProvider::createSpatialIndex()
1250
1279
1251
1280
bool QgsMssqlProvider::createAttributeIndex ( int field )
1252
1281
{
1282
+ if ( !mDatabase .isOpen () )
1283
+ {
1284
+ mDatabase = GetDatabase ( mService , mHost , mDatabaseName , mUserName , mPassword );
1285
+ }
1253
1286
QSqlQuery query = QSqlQuery ( mDatabase );
1254
1287
query.setForwardOnly ( true );
1255
1288
QString statement;
0 commit comments