[mapguide-internals] question about inserting features
Paul Spencer
pspencer at dmsolutions.ca
Tue Jul 17 08:36:28 EDT 2007
A bit more on this. I tried a few more things (none worked), but I
did get an error at one point that said that GetClassDefinition was
not a member of mgdatareader, so I think the returned object is not a
feature reader, but rather a data reader. Also, it seems not to have
any properties
GetPropertyName(0) triggers a null reference error, as does any other
call on the featureReader at that point in time.
Cheers
Paul
On 17-Jul-07, at 8:19 AM, Paul Spencer wrote:
> Hi Trevor ... nice thought ... GetPropertyType() returns 12,
> MgPropertyType::Feature ... This makes sense because the identity
> property of a feature source may be composed of several attributes
> so there wouldn't necessarily be a single value.
>
> I hadn't checked the property type before, but I did print_r($res-
> >GetItem(0)->GetValue()) and it told me it was an
> mg_feature_reader_obj (or something like that) and ReadNext() also
> did not fail - it is only the calls to get at the properties that
> fail with a null reference.
>
> Cheers
>
> Paul
>
> On 16-Jul-07, at 5:54 PM, Trevor Wekel wrote:
>
>> Hi Paul,
>>
>> I wonder if UpdateFeatures returns the identity property for the
>> inserted property and not an MgFeatureReader. Try calling
>> res->GetItem(0)->GetPropertyType() and see what the type is.
>>
>> Thanks,
>> Trevor
>>
>> -----Original Message-----
>> From: mapguide-internals-bounces at lists.osgeo.org
>> [mailto:mapguide-internals-bounces at lists.osgeo.org] On Behalf Of Paul
>> Spencer (External)
>> Sent: Monday, July 16, 2007 3:27 PM
>> To: MapGuide Internals Mail List
>> Subject: [mapguide-internals] question about inserting features
>>
>> Hi all,
>>
>> when inserting new features into a feature source, the (php) code
>> looks like this:
>>
>> $className = $layer->GetFeatureClassName();
>> $cmd = new MgInsertFeatures($className, $drawProps);
>> $commands = new MgFeatureCommandCollection();
>> $commands->Add($cmd);
>> $res = $featureService->UpdateFeatures($dataSourceId, $commands,
>> false);
>>
>> this works great. What I would like to do is access the newly
>> created feature. According to the documentation, the result of
>> UpdateFeatures is an MgPropertyCollection which should have one
>> property, of type MgFeatureProperty whose value is an MgFeatureReader
>> that contains the set of properties inserted into the datastore by
>> the insert command.
>>
>> When I try to get access to the properties, I receive an error
>>
>> - MgFeatureReader.GetPropertyCount line 29 file .\Services
>> \FeatureReader.cpp
>>
>> This happens with the following code:
>>
>> $featureReader = $res->GetItem(0)->GetValue();
>> while ($featureReader->ReadNext()) {
>> $nProps = $featureReader->GetPropertyCount();
>> // would do something more here if it didn't crap out
>> }
>>
>> Is this the right way to access a newly inserted feature? If not,
>> then how should I do it? If yes, is the code wrong or is there a bug
>> somewhere?
>>
>> Cheers
>>
>> Paul
>> +-----------------------------------------------------------------+
>> |Paul Spencer pspencer at dmsolutions.ca |
>> +-----------------------------------------------------------------+
>> |Chief Technology Officer |
>> |DM Solutions Group Inc http://www.dmsolutions.ca/ |
>> +-----------------------------------------------------------------+
>>
>>
>>
>>
>>
>> _______________________________________________
>> mapguide-internals mailing list
>> mapguide-internals at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapguide-internals
>>
>> _______________________________________________
>> mapguide-internals mailing list
>> mapguide-internals at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapguide-internals
>
> +-----------------------------------------------------------------+
> |Paul Spencer pspencer at dmsolutions.ca |
> +-----------------------------------------------------------------+
> |Chief Technology Officer |
> |DM Solutions Group Inc http://www.dmsolutions.ca/ |
> +-----------------------------------------------------------------+
>
>
>
>
>
> _______________________________________________
> mapguide-internals mailing list
> mapguide-internals at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapguide-internals
+-----------------------------------------------------------------+
|Paul Spencer pspencer at dmsolutions.ca |
+-----------------------------------------------------------------+
|Chief Technology Officer |
|DM Solutions Group Inc http://www.dmsolutions.ca/ |
+-----------------------------------------------------------------+
More information about the mapguide-internals
mailing list