HOPEN
路人甲
路人甲
  • 注册日期2004-06-11
  • 发帖数8
  • QQ
  • 铜币141枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1034回复:1

[讨论]mapx的紧缩表!!!

楼主#
更多 发布于:2004-09-21 20:03
var
    LayerInfo : CMapXLayerInfo;
    FileSpec , LayerName : String;
    lyr ,lyrpack : CMapXLayer;
    ds : CMapXDataset;
    LayerPos : Integer;
    flds : CMapXFields;
begin
    LayerInfo := CoLayerInfo.Create;
    LayerPos := 0;
    lyr := Map1.Layers.Item['NCUST'];
    ds := Map1.DataSets.Item['NCUST'];
    FileSpec := lyr.FileSpec;
    LayerName := lyr.Name;
    LayerInfo.type_ := miLayerInfoTypeTemp;
    LayerInfo.AddParameter('TableStorageType', 'MemTable');
    LayerInfo.AddParameter('Name', 'lyrpack');
    LayerInfo.AddParameter('Fields', ds.Fields);
    LayerInfo.AddParameter('Features', lyr.AllFeatures);
    LayerInfo.AddParameter('AutoCreateDataset', 1);
    LayerInfo.AddParameter('DataSetName', 'lyrpack');
    Map1.Layers.Add(LayerInfo, LayerPos);
    Map1.DataSets.Remove(ds.Name);
    Map1.Layers.Remove(lyr.Name);
    Map1.Refresh;
    LayerInfo := CoLayerInfo.Create;
    lyr := Map1.Layers['lyrpack'];
    ds := Map1.DataSets.Item['lyrpack'];
    DeleteFile(FileSpec);
    LayerInfo.Type_ := miLayerInfoTypeNewTable;
    LayerInfo.AddParameter('filespec', filespec);
    LayerInfo.AddParameter('Name', LayerName);
    LayerInfo.AddParameter('Fields', ds.Fields);
    LayerInfo.AddParameter('Features', lyr.AllFeatures);
    LayerInfo.AddParameter('AutoCreateDataset', 1);
    LayerInfo.AddParameter('DataSetName', LayerName);
    Map1.Layers.Add(LayerInfo, LayerPos);
    Map1.DataSets.Remove(ds.Name);
    Map1.Layers.Remove(lyr.Name);
    Map1.Refresh;
    ds := NIL;
    lyr := NIL;
    LayerInfo := NIL;
end;
运行后,在Map1.Layers.Add(LayerInfo, LayerPos)行提示'Table NCUST is already open,can't create a new table'!!!请问这是为什么呢???
喜欢0 评分0
游客

返回顶部