Exemple #1
0
        public static MG_FieldSet AsFieldSet(FeatureDefn f)
        {
            MG_FieldSet fieldSet = new MG_FieldSet(f.GetName());// name
            int         count    = f.GetFieldCount();

            for (int i = 0; i < count; i++)
            {
                MG_Field field = AsField(f.GetFieldDefn(i));
                fieldSet.Add(field);
            }
            return(fieldSet);
        }
        protected MG_FieldSet GetFieldSet(string table)
        {
            ArrayList columns = this.GetColumnNames(table);
            ArrayList types   = this.GetColumnTypes(table);

            if (columns == null || types == null)
            {
                return(null);
            }
            int columnCount = columns.Count;
            int typeCount   = types.Count;

            if (columnCount != typeCount)
            {
                return(null);
            }
            MG_FieldSet fieldSet = new MG_FieldSet(table);

            // oid .... geom
            for (int i = 0; i < columnCount; i++)
            {
                string column = columns[i].ToString();
                string type   = types[i].ToString();
                if (!column.Equals("oid") && !column.Equals("geom"))
                {
                    // oid      name                geom         no       length
                    // integer character varying  USER-DEFINED  integer double precision
                    MG_FieldDBType dbType = MG_FieldDBType.VARCHAR;
                    if (type.Equals("integer"))
                    {
                        dbType = MG_FieldDBType.INTEGER;
                    }
                    else if (type.Equals("character varying"))
                    {
                        dbType = MG_FieldDBType.VARCHAR;
                    }
                    else if (type.Equals("double precision"))
                    {
                        dbType = MG_FieldDBType.FLOAT8;
                    }

                    MG_Field field = new MG_Field(column, dbType);
                    fieldSet.Add(field);
                }
            }

            return(fieldSet);
        }