Ludovic Granjon wrote:
Hi all
I try in a python script to delete a sqlite database that I use in an
OGR ExecuteSQL.
Let me give you an example :
If I do :
>>> from osgeo import *
>>> import os
>>> datasource = ogr.Open("decoupe.shp")
>>> layer = datasource.GetLayer()
>>> joinLayer=datasource.ExecuteSQL("SELECT decoupe.FID as ligne_id,
c.lFid as ligne_id2, c.count as count FROM decoupe LEFT JOIN
'project.sqlite'.comptage c ON decoupe.FID=c.lFid")
>>> datasource.Destroy()
It seems that there still a connection to my sqlite database and I can't
delete it.
When I try on MS Windows (There's no error on linux) :
>>> os.remove('project.sqlite')
I have :
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
os.remove('project.sqlite')
WindowsError: [Error 13] Le processus ne peut pas accéder au fichier car
ce fichier est utilisé par un autre processus: 'project.sqlite'
Do you know a way to do that ?
Ludovic,
I think newish versions of the Python bindings attempt to keep the datasource
alive as long as their are references to layers from it. I would suggest
setting layer and joinLayer variables to None before calling destroy on the
datasource or even just setting the datasource to None. I'm not positive that
this is the issue - perhaps you could let us know if it works.
Best regards,
--
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up | Frank Warmerdam, warmer...@pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush | Geospatial Programmer for Rent
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev