[mapguide-users] Maestro: can't find the table containing the geometry field with SQLServerSpatial

Carl carlshe at 163.com
Wed Oct 15 08:06:14 EDT 2008


sometimes, while I choose the featuresoure, follow message is shown and
Maestro stops. But if I re-choose the same featuresource, it works without
any message:

Failed to read schema from data source.
The operation gave the error message: remote server return error: (559)
MgFdoException.:
An Exception occurred in FDO component.
Invalid length -1 for column type varchar, must be %gt;=0
Exception occurred in method 
MgServerDescribeSchema.ExecuteDescribeSchema at line 176 in file
d:\buildforgeprojects\mapguide_open_source_v2.0\build_23.8\mgdev\server\src\services\feature\ServerDescribeSchema.cpp


Kenneth Skovhede, GEOGRAF A/S wrote:
> 
> I guess there should be an "unmapped type" - type, to deal with 
> situations like this.
> You can set it to "string", and it should read out just fine.
> I have created a ticket for the problem:
> http://trac.osgeo.org/mapguide/ticket/724
> 
> As you may have noticed, Maestro issues calls to a web interface on the 
> MapGuide server:
> http://localhost/mapguide/mapagent/index.html
> 
> On this test form/web interface, you can try the "Feature" -> 
> "DescribeSchema".
> Leave the "Schema" field blank, and you will get the output from 
> MapGuide, which in turn should be
> the output directly from FDO.
> 
> If the tables are missing there, you cannot get them into Maestro.
> If the tables are present, please file a bug report for Maestro, and 
> include the resulting xml in the ticket.
> 
> If the tables are missing (which I suspect), it could be a problem with 
> permissions.
> Could it be that the provider only shows tables which are owned by the 
> login user?
> 
> Regards, Kenneth Skovhede, GEOGRAF A/S
> 
> 
> 
> Carl skrev:
>> yes, the exception is exactly fired because of the lost the type map.
>>
>> Then I tried to comment the follow bold line: 
>>
>> /////////////////////////////////////////
>> public class FeatureSetColumn
>> 	{
>> 		internal FeatureSetColumn(string name, int type)
>> 		{
>> 			m_name = name;
>> 			m_type = Utility.ConvertMgTypeToNetType(type);
>> 		}
>>
>> 		internal FeatureSetColumn(XmlNode node)
>> 		{
>> 			m_name = node.Attributes["name"].Value;
>> 			m_allowNull = node.Attributes["minOccurs"] != null &&
>> node.Attributes["minOccurs"].Value == "0";
>>             if (node.Attributes["type"] != null &&
>> node.Attributes["type"].Value == "gml:AbstractGeometryType")
>>                 m_type = Utility.GeometryType;
>>             else if (node["xs:simpleType"] == null)
>>                 m_type = Utility.RasterType;
>>             else
>>                 switch
>> (node["xs:simpleType"]["xs:restriction"].Attributes["base"].Value.ToLower())
>>                 {
>>                     case "xs:string":
>>                         m_type = typeof(string);
>>                         break;
>>                     case "fdo:byte":
>>                         m_type = typeof(Byte);
>>                         break;
>>                     case "fdo:int32":
>>                         m_type = typeof(int);
>>                         break;
>>                     case "fdo:int16":
>>                         m_type = typeof(short);
>>                         break;
>>                     case "fdo:int64":
>>                         m_type = typeof(long);
>>                         break;
>>                     case "xs:float":
>>                         m_type = typeof(float);
>>                         break;
>>                     case "xs:double":
>>                     case "xs:decimal":
>>                         m_type = typeof(double);
>>                         break;
>>                     case "xs:boolean":
>>                         m_type = typeof(bool);
>>                         return;
>>                     case "xs:datetime":
>>                         m_type = typeof(DateTime);
>>                         break;
>>                     default:
>>                         //throw new Exception("Failed to find appropriate
>> type for: " +
>> node["xs:simpleType"]["xs:restriction"].Attributes["base"].Value);                       
>> break;
>>                 }
>> 		}
>>
>> 		private string m_name;
>> 		private Type m_type;
>> 		private bool m_allowNull;
>>
>> 		public string Name { get { return m_name; } }
>> 		public Type Type { get { return m_type; } }
>> 	}
>>
>> //////////////////////////////////
>>
>> OK. No messages shown again, and Maestro seems work normally, the
>> resource
>> editor can show more information. 
>>
>> But, there still only 16 tables listed, none has a geometry field. In
>> fact
>> there exist more than 200 tables in the Database. 
>>   
> _______________________________________________
> 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/Maestro%3A-can%27t-find-the-table-containing-the-geometry-field-with-SQLServerSpatial-tp19977173p19992149.html
Sent from the MapGuide Users mailing list archive at Nabble.com.



More information about the mapguide-users mailing list