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); }