默认头像
路人甲
路人甲
  • 注册日期2004-10-22
  • 发帖数71
  • QQ
  • 铜币439枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:4237回复:7

在CreateFeatureClass 时出现没有许可权限怎么办?

楼主#
更多 发布于:2006-07-02 09:28

用Arcgis engine在图层组FeatureDataset下创建图层,采用以下语句

object.CreateFeatureClass (Name, Fields, CLSID, EXTCLSID, FeatureType, ShapeFieldName, ConfigKeyword )

运行出现异常,提示:“应用没有创建或修改这种类型数据的方案的许可权”,同样的一段代码,放到其他的系统运行却没有问题,这是怎么回事?

我想了不少办法都不行,请高手帮帮忙,不胜感激,谢谢!

喜欢0 评分0
默认头像
路人甲
路人甲
  • 注册日期2003-08-20
  • 发帖数235
  • QQ33281522
  • 铜币366枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2006-11-16 22:59
o
Gis的小石块 QICQ:33281522 EMAIL:license@vip.sina.com GIS的麦田守望者,希望和大家交流。 〓〓〓〓〓〓〓〓〓 〓 GISEMPIRE 〓 〓 灌水★波菜 〓 〓 专 用 章 〓 〓〓〓〓〓〓〓〓〓
举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2006-08-15
  • 发帖数2
  • QQ
  • 铜币106枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2006-11-16 18:03
请教一下高手,好像直接用IFeatureWorkSpace创建FeatureClass 的话会出现错误,请问这样不可以吗?我现在不想用IFeatureDataSet来创建!
举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2004-10-22
  • 发帖数71
  • QQ
  • 铜币439枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2006-07-08 10:00

我终于解决这个问题了,还是得谢谢Mr gis,:)

是这样的,项目的解决方案里,首次AoInitialize的时候,不知道何缘故,InitializedProductesriLicenseProductCodeEngineGeoDB,这导致我无法使它checkout,从而数据导入数据库时没有许可权。

所以我先把AoInitialize的所有扩展先checkin,然后AoInitialize.Shutdown,重新AoInitialize,问题就这样解决了。

举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2004-10-22
  • 发帖数71
  • QQ
  • 铜币439枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2006-07-06 15:52

我想我对license的检验已经是成功的,如下代码

    Public Function InitializeApplication() As Boolean
        Dim bInitialized As Boolean
       bInitialized = True
        m_AoInitialize = New AoInitialize
       If m_AoInitialize Is Nothing Then
           System.Windows.Forms.MessageBox.Show("Unable to initialize ArcGIS. This application cannot run! Please check that ArcGIS (Desktop, Engine or Server) is installed.","ESRI License Initializer")
           bInitialized = False
       End If
        'Initialize the application
       Dim licenseStatus As esriLicenseStatus
       licenseStatus = esriLicenseStatus.esriLicenseUnavailable
        licenseStatus = CheckOutLicenses(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB)
       If licenseStatus <> esriLicenseStatus.esriLicenseCheckedOut Then
           licenseStatus = CheckOutLicenses(esriLicenseProductCode.esriLicenseProductCodeEngine)
           If licenseStatus <> esriLicenseStatus.esriLicenseCheckedOut Then
               'System.Windows.Forms.MessageBox.Show(LicenseMessage(licenseStatus),"ESRI License Initializer")
               bInitialized = False
           End If
       End If
        InitializeApplication = bInitialized
    End Function
 
如果我把自己的程序独立出来,不挂在项目的解决方案里,是没有问题的,可是放到项目里就出现这样的问题,让我百思不得其解,头痛得很。。。真希望高手能给予提点一下
 
举报 回复(0) 喜欢(0)     评分
默认头像
管理员
管理员
  • 注册日期2003-07-25
  • 发帖数5917
  • QQ14265545
  • 铜币29669枚
  • 威望217点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • GIS帝国铁杆
5楼#
发布于:2006-07-06 10:06

看情况,一般这样既可以地打开验证(c#)

  AoInitialize aoini =new AoInitializeClass();
  if(aoini==null)return;
 
  if(aoini.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngine)==esriLicenseStatus.esriLicenseAvailable)
  {
   aoini.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngine);
  }

没钱又丑,农村户口。头可断,发型一定不能乱。 邮箱:gisempire@qq.com
举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2004-10-22
  • 发帖数71
  • QQ
  • 铜币439枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2006-07-05 15:53

我不知道自己错在哪里,请你帮忙看看我的思路是在哪里出现问题的:

1。读取并验证LICENSE文件

2.连接SDE数据库,获取workspace

3。通过workspace->FeatureWorkspace,然后通过FeatWorkspace.OpenFeatureDataset打开一图层组FeatureDataset

4。通过FeatureDataset.CreateFeatureClass (Name, Fields, CLSID, EXTCLSID, FeatureType, ShapeFieldName, ConfigKeyword )创建图层

这样的步骤,以前都这样用过很多次了,都没有问题。这次虽然指定license可能出现问题了,但是实在不知道问题出在哪里。

你说的这个GeodatabseEdit的license如何验证,能否具体说清楚一点?

期待您的回复,谢谢!

举报 回复(0) 喜欢(0)     评分
默认头像
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
7楼#
发布于:2006-07-03 16:00
在你的程序里检测gdbedit的license,只有检测成功后才能使用
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
默认头像

返回顶部