mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-28 00:17:30 -05:00
fixing bug #7822
This commit is contained in:
parent
5e760dd292
commit
9a0be04113
@ -801,6 +801,16 @@ QgsVectorFileWriter::writeAsVectorFormat( QgsVectorLayer* layer,
|
||||
|
||||
writer->startRender( layer );
|
||||
|
||||
// enabling transaction on databases that support it
|
||||
bool transactionsEnabled = true;
|
||||
OGRLayerH ogrCurrentLayer = writer->getLayer();
|
||||
|
||||
if ( OGRERR_NONE != OGR_L_StartTransaction(ogrCurrentLayer) )
|
||||
{
|
||||
QgsDebugMsg("Error when trying to enable transactions on OGRLayer.");
|
||||
transactionsEnabled = false;
|
||||
}
|
||||
|
||||
// write all features
|
||||
while ( fit.nextFeature( fet ) )
|
||||
{
|
||||
@ -862,6 +872,14 @@ QgsVectorFileWriter::writeAsVectorFormat( QgsVectorLayer* layer,
|
||||
n++;
|
||||
}
|
||||
|
||||
if ( transactionsEnabled )
|
||||
{
|
||||
if ( OGRERR_NONE != OGR_L_CommitTransaction(ogrCurrentLayer) )
|
||||
{
|
||||
QgsDebugMsg("Error while commiting transaction on OGRLayer.");
|
||||
}
|
||||
}
|
||||
|
||||
writer->stopRender( layer );
|
||||
delete writer;
|
||||
|
||||
|
@ -155,6 +155,9 @@ class CORE_EXPORT QgsVectorFileWriter
|
||||
double symbologyScaleDenominator() const { return mSymbologyScaleDenominator; }
|
||||
void setSymbologyScaleDenominator( double d ) { mSymbologyScaleDenominator = d; }
|
||||
|
||||
/**Returns OGRLayer used to begin and commit transactions on database*/
|
||||
OGRLayerH getLayer() { return mLayer; }
|
||||
|
||||
protected:
|
||||
//! @note not available in python bindings
|
||||
OGRGeometryH createEmptyGeometry( QGis::WkbType wkbType );
|
||||
|
Loading…
x
Reference in New Issue
Block a user