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