Le 22/11/2010 15:24, Frank Warmerdam a écrit :
Ludovic Granjon wrote:Hi allI 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 datasourcealive as long as their are references to layers from it. I would suggestsetting layer and joinLayer variables to None before calling destroy on the datasource or even just setting the datasource to None. I'm not positive thatthis is the issue - perhaps you could let us know if it works. Best regards,
Thanks Franck for your answer I try : >>> layer = None >>> joinLayer = None >>> datasource.Destroy() and : >>> layer = None >>> joinLayer = None >>> datasource = None But I have the same error. Best regards Ludovic
<<attachment: ludovic_granjon.vcf>>
_______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev