这两天在做对老SDE中数据转换到新格式。本来挺简单的程序,在对featureclass重命名上面却花了大半天时间查BUG,最后还是自己发现了licence问题。
首先,对featureclass重命名要转到 IDataset
IDataset dataset = featureClass as IDataset;
if (dataset.CanRename())
{
dataset.Rename(strNewName);
}
结果一直dataset.CanRename()都是FALSE,如果强制运行dataset.Rename(strNewName);则报错“The orphan junction feature class cannot be renamed”,查了下这个错误,网上说是存在网路的情况下重命名SDE中数据图层错误,解决方法:先删除其中的网络数据集,然后进行重新数据重命名,完成后进行网络创建。但是我都不知道网路是什么,也不想动featureclass里面的数据。
而且奇怪的是明明直接用ARCcatalog直接对featureclass右键重命名就可以成功。后来又试了一下dataset.CanDelete(),也返回FALSE,强制运行dataset.Delete()的话报了个关于licence的错,然后想到可能是licence权限不够。
把licence调到Arcinfo级别,然后把extention全部勾选上,运行就对了。。。。
来源:CSDN
作者:小远vivian
链接:https://blog.csdn.net/u010598851/article/details/39693997