[Qgis-developer] Vector buffer commitChanges (was Interaction between QGis and ArcGis)
olivier.dalang at gmail.com
Sat Apr 20 12:03:29 PDT 2013
Is this a solution for http://hub.qgis.org/issues/7540 ?
2013/4/20 Radim Blazek <radim.blazek at gmail.com>
> On Fri, Apr 19, 2013 at 12:07 PM, JVerholle <julien.verholle at eaurmc.fr>
> > Hi all,
> > If I want to open the same shapefile in both softwares at the same time,
> > file is locked in ArcGis (even if the edition mode isn't used in QGis).
> QGIS opens layers (files) in update mode ("r+") if possible (file
> permission + OGR driver support). It may (but also may not) be a
> problem also for #6448 (slow shp over network) I am currently
> struggling with. In general, I think that it is bad to open files
> always in update mode even if in most cases they are not going to be
> Currently there are no QgsVectorDataProvider::startEditing() and
> commitChanges() which may also be a problem for database providers
> because QgsVectorLayerEditBuffer::commitChanges() calls more provider
> methods changing
> data (deleteAttributes, addAttributes, deleteFeatures,
> addFeatures...). The commitChanges() should do everything in one
> transaction IMO.
> My proposal is to:
> 1) Add QgsVectorDataProvider::startEditing() and
> 2) In OGR provider try to open layer in update mode only to get
> capabilities (get info if it can be modified when the provider is
> constructed) but then to reopen in read only mode.
> 3) Call QgsVectorDataProvider::startEditing() from
> QgsVectorLayer::startEditing() to be sure that the layer is still
> editable (permissions could change or it was opened by another
> application for editing since the layer was opened) and to reopen
> files in update mode (files based) or to start transaction (DB based).
> 4) Call QgsVectorDataProvider::commitChanges() from
> 4) In QgsOgrProvider::startEditing() reopen the layer in update mode
> 5) In QgsOgrProvider::commitChanges() reopen the layer in read only mode
> I am not sure if reopening of layers in OGR provider may be a
> performance problem, but I hope that it should not be.
> We don't really have to implement startEditing() and commitChanges()
> in all providers for 2.0, but it should be in the vector API.
> PS: Unfortunately, according to my current knowledge, this is not full
> solution for #6448.
> > ArcGis is enable to recognize the feature's type (we can see a "?"
> > of polylign, polygon or point).
> > This issue has been only noticed on Windows (and with ArcMap 9.2).
> > Someone has already seen this problem ? Is it due to QGis or Gdal ?
> > Thanks.
> > Julien
> > --
> > View this message in context:
> > Sent from the Quantum GIS - Developer mailing list archive at Nabble.com.
> > _______________________________________________
> > Qgis-developer mailing list
> > Qgis-developer at lists.osgeo.org
> > http://lists.osgeo.org/mailman/listinfo/qgis-developer
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Qgis-developer