[fdo-users] OSGeo.PostgreSQL.3.5 Provider Create Schema
hanko
hana.jaborova at spatialtechnology.se
Wed Jun 9 05:19:34 EDT 2010
Hi all,
I'm using the FDO to connect to PostGIS 1.5 ("OSGeo.PostgreSQL.3.5")
I have created a new postgis database 'gisdb' with ICreateDataStore command
.
When I'm trying to create a new simple Feature Schema without geometry I get
an exception
Message "ShipSysSchema has errors; cannot apply it "
InnerException {"Error in Column
gisdb.public.geography_columns.f_geography_column: length or precision 0 is
less than minimum allowed (1) "} System.Exception
{OSGeo.FDO.Common.Exception}
This problem is solved if I delete 'geography_columns' view in database.
Function:
public void CreateSchema()
{
IConnectionPropertyDictionary connProperties =
FDOConnection.ConnectionInfo.ConnectionProperties;
connProperties.SetProperty("Username", _userPostGIS);
connProperties.SetProperty("Password", _passwordPostGIS);
connProperties.SetProperty("Service", _servicePostGIS);
connProperties.SetProperty("DataStore", _dataStore);
FDOConnection.Open();
if (FDOConnection.ConnectionState ==
OSGeo.FDO.Connections.ConnectionState.ConnectionState_Open)
{
try
{
// Create a feature class for Ship
FeatureClass shipFeatureClass = new FeatureClass("Ship", "Description of
ship");
// Create the ID
// Create ID Value - identity property
DataPropertyDefinition idProperty = new DataPropertyDefinition("ID",
"This is the identity property");
idProperty.DataType = DataType.DataType_Int64;
idProperty.IsAutoGenerated = true;
idProperty.Nullable = false;
idProperty.ReadOnly = true;
shipFeatureClass.Properties.Add(idProperty);
shipFeatureClass.IdentityProperties.Add(idProperty);
// The name property
DataPropertyDefinition nameProperty1 = new DataPropertyDefinition("Name",
"the name of the ship");
nameProperty1.DataType = DataType.DataType_String;
nameProperty1.Length = 255;//
nameProperty1.Nullable = false;//null
shipFeatureClass.Properties.Add(nameProperty1);
// The velocityProperty property
DataPropertyDefinition velocityProperty = new
DataPropertyDefinition("Velocity", "the Velocity of the ship");
velocityProperty.DataType = DataType.DataType_Double;
velocityProperty.Nullable = false;//null
shipFeatureClass.Properties.Add(velocityProperty);
// construct the instance of FeatureSchema
FeatureSchema schema = new FeatureSchema("ShipSysSchema", "");
//
schema.Classes.Add(shipFeatureClass);
//
IApplySchema applySchema =
(IApplySchema)FDOConnection.CreateCommand(OSGeo.FDO.Commands.CommandType.CommandType_ApplySchema);
// set the schema to IApplySchema's feature schema
applySchema.FeatureSchema = schema;
//Execute the command
applySchema.Execute();
}
catch (System.Exception ex )
{
Console.WriteLine(ex.Message + " " + ex.InnerException);
}
}
}
ny ideas?
Thank in advance
Hanko
--
View this message in context: http://osgeo-org.1803224.n2.nabble.com/OSGeo-PostgreSQL-3-5-Provider-Create-Schema-tp5157464p5157464.html
Sent from the FDO Users mailing list archive at Nabble.com.
More information about the fdo-users
mailing list