[gdal-dev] Shape datafile locked

Stephan Braeuer stephan.braeuer at bentley.com
Tue Mar 13 10:01:48 PDT 2018


I am using GDAL with c# and run into a problem deleting datasource files
after running ExecuteSQL.
The key here is that a datasource is opened implicitly via the JOIN
statement. An implicitly opened shapefile (here node3109.shp) remains locked
after the datasource has been closed.

Opening the file upfront does not help either. Here is the c# code snippet:

  using (DataSource datasource = OSGeo.OGR.Ogr.Open(pipeFile, 0))
  {
     string statement =
         "SELECT p.id, n.grnd_lvl FROM pipe3109 p " +
         "LEFT JOIN 'node3109.shp'.node3109 n ON n.node_id = p.ds_node_id";
     using (Layer layer = datasource.ExecuteSQL(statement, null,
string.Empty))
     {
     }
  }
  File.Delete(pipeFile);   //ok
  File.Delete(nodeFile);  //throws



Anyone knowing a solution to avoid the lock? 

Thanks
Stephan







--
Sent from: http://osgeo-org.1560.x6.nabble.com/GDAL-Dev-f3742093.html


More information about the gdal-dev mailing list