Another approach might be to select the Max Id before the insert and select the Max Id after the insert. I don't believe the Id's get assigned such that they will use existing gaps (from deleted features) so the new Id should always be higher correct?
Dave -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Paul Spencer Sent: Friday, October 05, 2007 1:41 PM To: MapGuide Users Mail List Subject: Re: [mapguide-users] How to get an auto-generated Id afterInsertFeature ? Hi Julien, this appears to be a bug in mapguide. I ran into the same problem and discussed it with the core developers and they agree that the resulting feature reader does not contain the ids of the inserted features. I do not know of a work around at this time. Actually, I just thought of one. Add an attribute to your sdf file called 'uniqueid'. Create a unique value (uuid perhaps) and use it as the value of that attribute when you insert the new feature. Then, after you insert it, you can select it using a filter than selects only that record. Then you can get the id. Cheers Paul On 3-Oct-07, at 8:09 AM, julienltr wrote: > > Hi, > > I have a SDF file with three attributes : > - Id Int32 Autogenerated > - Name String > - Data Geometry > > When a I want to add new value I insert a string for "Name" and a > geometry > for "Data". > Id is an integer auto-generated. > My question is how to know which Id was generated? > > In the documentation, I find this in MgFeatureService::UpdateFeatures: > "Returns an MgPropertyCollection object. Each property in the > collection > corresponds to a command in the MgFeatureCommandCollection > argument. The > property name is the index of the command in the feature command > collection. > If the command is of type MgInsertFeatures, the property type is an > MgPropertyType::Feature, and its value is a MgFeatureReader object. > The > feature reader object contains the set of properties inserted into the > datastore by the insert command." > > My problem is that I can't read into this feature reader? > I get an MgNullReferenceException whereas the feature reader isn't > null! > But I don't think I can find the id inside this reader... > > Here's my code in C# (not to hard to understand ;)) > > // new values (name & data) > MgPropertyCollection propertyValues = new MgPropertyCollection(); > propertyValues.Add(new MgStringProperty("Name", > DateTime.Now.ToString())); > propertyValues.Add(new MgGeometryProperty("Data", byteReader)); > > // insert new values > MgFeatureCommandCollection commands = new MgFeatureCommandCollection > (); > commands.Add(new MgInsertFeatures(ClassName, propertyValues)); > MgPropertyCollection propertyCollection = > featureService.UpdateFeatures(featureSourceId, commands, false); > > // read the result > for (i = 0; i < propertyCollection.Count; i++) > { > // if MgInsertFeatures, PropertyType == MgPropertyType.Feature > if (propertyCollection.GetItem(i).PropertyType == > MgPropertyType.Feature) > { > MgFeatureProperty featureProperty = > (MgFeatureProperty)propertyCollection.GetItem(i); > MgFeatureReader featureReader = featureProperty.GetValue(); > for (int j = 0; j < featureReader.GetPropertyCount(); j++) > // GetPropertyCount() throw an MgNullReferenceException > { > string propertyName = featureReader.GetPropertyName > (j); > object propertyValue = Tools.GetProperty(featureReader, > propertyName); > // own function to do GetString or GetInt32, etc. > } > } > } > -- > View this message in context: http://www.nabble.com/How-to-get-an- > auto-generated-Id-after-InsertFeature---tf4561407s16610.html#a13017599 > Sent from the MapGuide Users mailing list archive at Nabble.com. > > _______________________________________________ > mapguide-users mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/mapguide-users +-----------------------------------------------------------------+ |Paul Spencer [EMAIL PROTECTED] | +-----------------------------------------------------------------+ |Chief Technology Officer | |DM Solutions Group Inc http://www.dmsolutions.ca/ | +-----------------------------------------------------------------+ _______________________________________________ mapguide-users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/mapguide-users _______________________________________________ mapguide-users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/mapguide-users
