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
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to