[mapguide-users] RE: Create new column in data source

Jim O'Leary joleary.public at gmail.com
Tue Sep 18 18:35:37 EDT 2007


Where is ApplySchema? I don't see it in the Web API.

Thanks.

Brent Robinson-5 wrote:
> 
> Hi,
> 
> For the SDF provider (versions 3.2.1 and later), it is possible to add a
> property to an existing feature class, using ApplySchema. However, if
> the class has features, the property must be nullable.
> 
> Brent.
> 
> -----Original Message-----
> From: mapguide-users-bounces at lists.osgeo.org
> [mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of Traian
> Stanev
> Sent: Tuesday, September 18, 2007 4:02 PM
> To: mapguide-users at lists.osgeo.org
> Subject: RE: [mapguide-users] Create new column in data source
> 
> 
> Hello,
> 
> In general, changing the definition of feature classes is done using an
> ApplySchema command. However, I don't think the SHP and SDF providers
> support modification of the feature class in the way that you want (i.e.
> add a column). You would have to copy the original data into a new
> feature source that also contains the new column in addition to all the
> existing ones.
> 
> Traian
> 
> 
> -----Original Message-----
> From: mapguide-users-bounces at lists.osgeo.org
> [mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of Jim O'Leary
> Sent: Tuesday, September 18, 2007 2:20 PM
> To: mapguide-users at lists.osgeo.org
> Subject: Re: [mapguide-users] Create new column in data source
> 
> 
> I am able to add the new property to the class definition like this:
> 
> $propertyCollection = new MgPropertyCollection();
> $textProperty = new MgDataPropertyDefinition('AText');
> $textProperty->SetDataType(MgPropertyType::String);
> $textProperty->SetReadOnly(false);
> $textProperty->SetLength(255);
> $resId = new MgResourceIdentifier($layer->GetFeatureSourceId()); //
> $layer
> is already defined
> $schemaClass = explode(':', $layer->GetFeatureClassName());
> $classDefinition = $featureService->GetClassDefinition($resId,
> $schemaClass[0], $schemaClass[1]);
> $properties = $classDefinition->GetProperties();
> $properties->Add($textProperty);
> 
> Looping through the properties shows that the property has been added:
> 
> $numberProperties = $properties->GetCount();
> for($i=0;$i<$numberProperties;$i++)
> {
>         $propertyDef = $properties->GetItem($i);
>         print $propertyDef->GetName() . "<br>";
> }
> 
> However, the new property appears to be only in memory. Is there a way
> to
> permanently ALTER (to use an SQL term) the class with the new property?
> 
> Thanks
> 
> 
> 
> 
> 
> Jim O'Leary wrote:
>> 
>> I would like my user to be able to add a new column to a SHP / SDF
> file at
>> run time. I have the code from the GT sample that shows how to create
> a
>> new MgDataPropertyDefinition:
>> 
>> $textProperty = new MgDataPropertyDefinition('Text');
>> $textProperty->SetDataType(MgPropertyType::String);
>> $textProperty->SetReadOnly(false);
>> $textProperty->SetLength(255);
>> 
>> However, this code goes on to create a new class and then a new
> feature
>> source. I already have those, but want only to add this new column.
> Any
>> suggestions?
>> 
>> Thanks.
>> 
> 
> -- 
> View this message in context:
> http://www.nabble.com/Create-new-column-in-data-source-tf4471689s16610.h
> tml#a12763007
> Sent from the MapGuide Users mailing list archive at Nabble.com.
> 
> _______________________________________________
> mapguide-users mailing list
> mapguide-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapguide-users
> 
> 
> _______________________________________________
> mapguide-users mailing list
> mapguide-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapguide-users
> 
> _______________________________________________
> mapguide-users mailing list
> mapguide-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapguide-users
> 
> 

-- 
View this message in context: http://www.nabble.com/Create-new-column-in-data-source-tf4471689s16610.html#a12767462
Sent from the MapGuide Users mailing list archive at Nabble.com.



More information about the mapguide-users mailing list