Le lundi 14 novembre 2011 20:44:35, Eli Adam a écrit :
Hi all,
On Windows, I'm trying to access non-spatial tables in an .mdb file.
With --debug on I see that the absence of a 'GDB_GeomColumns' table is
the problem.
ogrinfo --debug on Surveys.mdb
PGeo: EstablishSession(DRIVER=Microsoft Access Driver
(*.mdb);DBQ=Surveys.mdb) ODBC: SQLDriverConnect(DRIVER=Microsoft Access
Driver (*.mdb);DBQ=Surveys.mdb) PGEO: SELECT on GDB_GeomColumns fails,
perhaps not a personal geodatabase? [Microsoft][ODBC Microsoft Access
Driver] The Microsoft Jet database engine cann ot find the input table or
query 'GDB_GeomColumns'. Make sure it exists and tha t its name is
spelled correctly.
ODBC: SQLDisconnect()
I noticed this fairly recent commit, which seems to indicate that this
is the desired behavior, http://trac.osgeo.org/gdal/changeset/21550
I'm confused because if you get to the point of having the trace PGEO:
SELECT on GDB_GeomColumns fails, perhaps not a personal geodatabase? it means
that you got after the test of r21550 (which should have discared this mdb as
having no GDB_GeomColumns table), so I highly suspect you are not using trunk
version for this test.
r21550 only enforces what existed before : the PGeo driver can only handle
PGeo MDBs. The new test was introduced specifically to avoid the PGeo driver to
try opening a MDB that should be recognized by the Geomedia driver (new in
trunk).
I was able to access the non-spatial attributes by making a
'GDB_GeomColumns' table and falsely populating it (and ignoring the
missing 'GDB_SpatialRefs' table errors).
TableName FieldName ShapeType ExtentLeft ExtentBottom
ExtentRight
ExtentTop
IdxOriginX IdxOriginY IdxGridSize SRIDHasZHasM
SurveyShape 4 7255394.59721669241841.239197335
7396378.9177745
524650.46
1230004 0 0 141508.9583397911 0 0
ogrinfo -so Surveys.mdb Survey
ERROR 1: 'SELECT srtext FROM GDB_SpatialRefs WHERE srid = 1' failed.
[Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine
cann ot find the input table or query 'GDB_SpatialRefs'. Make sure it
exists and tha t its name is spelled correctly.
INFO: Open of `Surveys.mdb'
using driver `PGeo' successful.
Layer name: Survey
Geometry: Unknown (any)
Feature Count: 20790
Extent: (7255394.597217, 241841.239197) - (7396378.917775, 524650.461230)
Layer SRS WKT:
(unknown)
Geometry Column = Shape
DocumentName: String (25.0)
SurveyDate: DateTime (19.0)
...
If the general case requires a 'GDB_GeomColumns' table, could no
'GDB_GeomColumns' table be made a driver config option?
Why not using the generic ODBC driver for that use case ?
I noticed that the new Access MDB driver,
http://gdal.org/ogr/drv_mdb.html , does not require a GDB_GeomColumns
table (tested on ubuntu 10.04 and gdal trunk).
Yes, it can understand PGeo MDBs, Geomedia MDBs and generic MDBs.
Thanks, Eli
___
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev
___
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev