首页 / 浏览问题 / 组件GIS / 问题详情
地图复制出现journal问题
49EXP 2024年12月12日
有一份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

1个回答

您好,emptyDatasource里面的数据集怎么创建的,您这个代码没有包含,请先确认下创建后的空数据集个数是否是对的

希望能帮助到您
1,050EXP 2024年12月13日
emptyDatasource 是这样弄的:
我们手工建立了一个空数据模板(包括smwu,udb,udd3个文件),
它的结构和现在有数据的工作空间和udb是一模一样的。

然后我们在生成的过程是这样的:

对于每一个单位,
首先将这个 空数据模板 拷贝到一个新目录中,

然后新建一个WorkspaceConnectionInfo打开那个目录,

然后是将 Datasets 里该单位的数据 拷贝到 新的里面去(就是上面那段代码)。

出现的问题就是生成的过程中,经常会奔溃。
...