[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