Hello everyone,

I'm using OGR via its csharp bindings and accessing a MapInfo Table (TAB) using 
OGR's DataSource.ExecuteSQL function. 
The call is somewhat like.

_ogrLayer = _ogrDatasource.ExecuteSQL(
    @"SELECT CAST(OGR_STYLE AS character(255) AS LABEL " +
     "FROM LAYER WHERE OGR_STYLE LIKE 'LABEL%'", null, String.Empty)

_ogrLayer is a class scope variable, and remains assigned throughout the 
livecycle of the class.

I know that I'm supposed to release this layer calling 
_ogrDatasource.ReleaseResultSet(_ogrLayer);
but if I do so in the finalizer or an IDisposable.Dispose() function, I 
-sometimes- get an exception:

System.ApplicationException wurde nicht behandelt.
  Message=Pointer 'hDS' is NULL in 'OGR_DS_ReleaseResultSet'.

  Source=ogr_csharp
  StackTrace:
       bei OSGeo.OGR.DataSource.ReleaseResultSet(Layer layer)
       bei SharpMap.Data.Providers.Ogr.ReleaseOgrLayer()
       bei SharpMap.Data.Providers.Ogr.Dispose(Boolean disposing)
       bei SharpMap.Data.Providers.Ogr.Dispose()
       bei SharpMap.Data.Providers.Ogr.Finalize()
  InnerException:

Am I allowed to call _ogrLayer.SetSpatialPredicate(...) on a layer created with 
ExecuteSQL(...)?

Thanks in advance
Felix Obermaier

------------------------------------------
 Ingenieurgruppe IVV GmbH & Co. KG
 Dipl.-Ing. Felix Obermaier
 Oppenhoffallee 171
 52066 Aachen

 Telefon: +49 (241) 94691-39
 Telefax: +49 (241) 531622
 eMail: [email protected]
 Internet: http://www.ivv-aachen.de

 Sitz der Gesellschaft: Aachen
 Amtsgericht Aachen HRA 6212
 GF: Bauassessor Dr.-Ing. Dieter Hölsken
 IVV-Management GmbH
 Amtsgericht Aachen HRB 12543

_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to