wzhipeng0117
路人甲
路人甲
  • 注册日期2005-05-05
  • 发帖数53
  • QQ
  • 铜币317枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1372回复:2

由程序向SDE导shp数据总是出现这种错误,帮忙分析一下

楼主#
更多 发布于:2005-09-06 21:36
<P>仿照帮助里的一个例子,代码如下,最后一句出错:"The application is not lisenced to create or modify schema for this type of data",想不出什么原因</P>
<P>Dim pPropertySet As IPropertySet<BR>    Set pPropertySet = New PropertySet<BR>    With pPropertySet<BR>        .SetProperty "SERVER", "CUMTB306"  <BR>        .SetProperty "INSTANCE", "esri_sde"  <BR>        .SetProperty "DATABASE", "sde"  <BR>        .SetProperty "USER", "sde"  <BR>        .SetProperty "PASSWORD", "306"  <BR>        .SetProperty "VERSION", "SDE.DEFAULT"<BR>    End With<BR>    Dim outWName As IWorkspaceName<BR>    Set outWName = New WorkspaceName<BR>    outWName.ConnectionProperties = pPropertySet<BR>    outWName.WorkspaceFactoryProgID = "esriDataSourcesGDB.SDEWorkspaceFactory.1"<BR>    <BR>    Dim inWName As IWorkspaceName<BR>    Set inWName = New WorkspaceName<BR>    inWName.PathName = "F:\GIS Data\SampleMaps\Data\Mexico\"<BR>    inWName.WorkspaceFactoryProgID = "esriDataSourcesFile.ShapefileWorkspaceFactory.1"<BR>    <BR>    Dim pInFCName As IFeatureClassName<BR>    Set pInFCName = New FeatureClassName<BR>    Dim pInDatasetName As IDatasetName<BR>    Set pInDatasetName = pInFCName<BR>    pInDatasetName.Name = "cities"<BR>    Set pInDatasetName.WorkspaceName = inWName<BR>    <BR>    Dim pOutDatasetName As IDatasetName<BR>    Dim pOutFCName As IFeatureClassName<BR>    Set pOutFCName = New FeatureClassName<BR>    Set pOutDatasetName = pOutFCName<BR>    Set pOutDatasetName.WorkspaceName = outWName<BR>    pOutDatasetName.Name = "Mexico_cities"<BR>    <BR>    Dim pName As IName<BR>    Dim pInFC As IFeatureClass<BR>    Set pName = pInFCName<BR>    Set pInFC = pName.Open<BR>    <BR>    Dim pChecker As IFieldChecker<BR>    Dim pInFields As IFields<BR>    Dim pOutFields As IFields<BR>    Set pInFields = pInFC.Fields<BR>    Set pChecker = New FieldChecker<BR>    pChecker.Validate pInFields, Nothing, pOutFields<BR>        <BR>    Dim pGeoField As IField<BR>    Dim pGeoDef As IGeometryDef<BR>    Dim pGeoDefEdit As IGeometryDefEdit<BR>    Dim i As Long<BR>    For i = 0 To pOutFields.FieldCount - 1<BR>        If pOutFields.Field(i).Type = esriFieldTypeGeometry Then<BR>            Set pGeoField = pOutFields.Field(i)<BR>            Exit For<BR>        End If<BR>    Next<BR>    <BR>    Set pGeoDef = pGeoField.GeometryDef<BR>    Set pGeoDefEdit = pGeoDef<BR>    pGeoDefEdit.GridCount = 1<BR>    pGeoDefEdit.GridSize(0) = 1500000<BR>    <BR>    Dim pFCToFC As IFeatureDataConverter<BR>    Set pFCToFC = New FeatureDataConverter<BR>    pFCToFC.ConvertFeatureClass(pInFCName, Nothing, Nothing, pOutFCName, pGeoDef, pOutFields, "", 1000, 0)<BR></P>
喜欢0 评分0
bluewood_cn
路人甲
路人甲
  • 注册日期2004-04-19
  • 发帖数118
  • QQ
  • 铜币551枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2005-09-07 09:24
<P>依照我的判断,你没有初始化ArcEngine的 lisencese.</P>
<P>ArcEngine默认是不能对 ArcSDE进行写操作的。默认的读写权限是</P>
<P>SHP格式和 personal geodatabase.</P>
<P>你在程序初始化的时候 重新设置ArcEngine的lisencese就可以了。</P>
<P>设置为esriLicenseProductCodeEngineGeoDB</P>
举报 回复(0) 喜欢(0)     评分
wzhipeng0117
路人甲
路人甲
  • 注册日期2005-05-05
  • 发帖数53
  • QQ
  • 铜币317枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2005-09-07 10:34
<P>谢谢大将军的回帖,请问这样设置对吗?但还是出现同样的错误</P>
<P>If m_pAoInitialize.IsProductCodeAvailable(esriLicenseProductCodeEngineGeoDB) = esriLicenseAvailable Then</P>
<P>m_pAoInitialize.Initialize(esriLicenseProductCodeEngineGeoDB)</P>
<P>endif</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部