Wrong query results on SDE layer

Howard Butler hobu at IASTATE.EDU
Thu Mar 3 12:12:23 EST 2005


Pirmin,

First, there is a define at the top.  #define MS_SDE_ROW_ID_COLUMN "SE_ROW_ID"

Whenever something like InitItemInfo (get the layer information, find the
column names, etc) is done, msSDELayerGetRowIDColumn is called.  It is in
this function where all the business of finding the unique row id column is
done.

If the table is not registered as versioned, then msSDELayerGetRowIDColumn
will only return the MS_SDE_ROW_ID_COLUMN value.

Try setting MS_SDE_ROW_ID_COLUMN to "OBJECTID" and recompiling or
registering the table as versioned so msSDELayerGetRowIDColumn  can
calculate it.  If you have *multiple* SDE layers in a mapfile and they have
different unique columns (ie, one table uses OBJECTID and the other uses
SE_ROW_ID), you are in a bit of a bind unless the tables are registered.

HTH

Howard


At 03:31 AM 3/3/2005, Pirmin Kalberer wrote:
>We have a problem with queries on SDE layers.
>After updating Mapserver from 4.2 to 4.4.1 we get "random" results using the
>Identify function of Chameleon. The returned result sets let me suspect that
>SE_ROW_ID and OBJECTID are confused somehow. But I couldn't find OBJECTID
>anywhere in the source code. We tested with SDE 9 and 8.3 (but client lib 9).
>For me it looks like a mapserver bug (what I almost can't believe). Or are
>there any other ideas?
>
>Regards,
>Pirmin
>
>--
>Pirmin Kalberer
>Sourcepole  -  Linux & Open Source Solutions
>http://www.sourcepole.com



More information about the mapserver-dev mailing list