MapXtreme2005中如何将一个已经存在的表索引化成为一个本地的表?

003、如何将一个已经存在的表索引化成为一个本地的表???
ISession session = MapInfo.Engine.Session.Current;

Table tableToIndex = session.Catalog["DIJISHI"];
MapInfo.Data.TableInfoNative ti = (MapInfo.Data.TableInfoNative)MapInfo.Data.TableInfoFactory.CreateFromFeatureCollection("NewTable", 
      MapInfo.Data.TableType.Native, tableToIndex);
ti.Columns["PINYIN"].Indexed = true;
ti.TablePath = "C://NewTable.tab";
ti.WriteTabFile();

MapInfo.Data.Table nativetable = MapInfo.Engine.Session.Current.Catalog.CreateTable(ti);
nativetable.Close();
nativetable = MapInfo.Engine.Session.Current.Catalog.OpenTable("C://NewTable.tab");

MapInfo.Data.MIConnection con = new MapInfo.Data.MIConnection();
con.Open();
MapInfo.Data.MICommand com = con.CreateCommand();

com = con.CreateCommand();
com.CommandText = "Insert into " + nativetable.Alias + " Select * from " + tableToIndex.Alias;

com.Prepare();
com.ExecuteNonQuery();

com.Dispose();
con.Dispose();
con.Close();
注:也可以使用如下的函数来将上述代码进行封装:
private MapInfo.Data.Table CreateIndexedNativeTableFromExisting(
  MapInfo.Data.Table tableToIndex,
  string columnAliasToIndex,
  string AliasForNewTable,
  string FilePathToSaveNativeTable,
  bool CloseOldTable)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值