FDE查询时FDB正常,mysql报异常Message:Commands out of sync;...NativeCode:2014;
文档中说明:
【解释】mysql数据库不支持嵌套查询:不能同时发出2个查询请求,必须一个查询完了再发出另一个查询请求。解决这种问题可以改变应用逻辑,或者应用逻辑不好改就另开一个连接。
【解决办法】把Search出来的modelpoint先存在内存里,最后一起请求model。
【总结】在Cursor下尽量只操作数据相关,不要去查询其它信息,包括获取FeatureClass、FeatureDataset等都会带来嵌套查询的问题。
具体操作如下:
currentRsManager = WorkSpaceServices.Instance().GetCurrentFeatureDataset() as IResourceManager;
while ((rowBuffer = cursor.NextRow()) != null)
{
IModelPoint mp = rowBuffer.GetValue(index) as IModelPoint;
//info.Model = currentRsManager.GetModel(mp.ModelName);
infoCol.Add(info);
}
foreach (ModelPointInfo currentModelPointInfo in infoCol)
{
currentModelPointInfo.Model = currentRsManager.GetModel(currentModelPointInfo.ModelPoint.ModelName);
}