有一份udb的地图,里面有路线,桥梁等图层,
现在想把它按照不同的单位分割位不同的地图,
我们采用了提供一个空数据的工作空间模板,然后将现有udb的数据选择拷贝到空模板里去。
主要的核心代码是:
mapLayers.ForEach(layerName =>
{
if (emptyDatasource.Datasets.Contains(layerName))
{
DatasetVector emptyDatasetVector = emptyDatasource.Datasets[layerName] as DatasetVector;
DatasetVector rawDatasetVector = rawDatasource.Datasets[layerName] as DatasetVector;
if (emptyDatasetVector != null && rawDatasetVector != null)
{
if (emptyDatasetVector.FieldInfos.IndexOf("GYDWDM") > -1)
{
string filterStr = string.Format(" {0} like '{1}%'", "GYDWDM", dwdm);
Recordset gRecordset = rawDatasetVector.Query(filterStr, CursorType.Static);
if (gRecordset != null)
{
emptyDatasetVector.Append(gRecordset);
gRecordset.Close();
gRecordset.Dispose();
emptyDatasetVector.Close();
}
}
}
}
});
系统出现的问题是 经常性的崩溃退出,有时候生成几份数据,有时候可以生成十几份数据。
崩溃的内容类似如下:
问题事件名称: APPCRASH
应用程序名: 地图分割.exe
应用程序版本: 1.0.0.0
应用程序时间戳: 6752b497
故障模块名称: sqlite328.dll
故障模块版本: 3.28.0.0
故障模块时间戳: 64e6a414
异常代码: c0000005
异常偏移: 000000000012b68e
OS 版本: 6.3.9600.2.0.0.272.7
区域设置 ID: 2052
其他信息 1: b073
其他信息 2: b073a5d2e6b1c68bc816f55e5c68bb30
其他信息 3: 4652
其他信息 4: 4652fbde77ccde90b2ea3ce120481d09