zoukankan      html  css  js  c++  java
  • GeoProcessing中通过GP.GetMessage(2)捕捉异常

    Sub MappingFields()

    On Error GoTo EH:

      '//initialize license
      Dim aoi As IAoInitialize
      Set aoi = New AoInitialize
      aoi.Initialize esriLicenseProductCodeArcInfo
     
      Dim GP As IGeoProcessor
      Set GP = New GeoProcessor
      GP.OverwriteOutput = True

      Dim strTableA As String
      strTableA = "C:"Temp"VBTests"FieldMapping"citiblocks.gdb"census"
     
      Dim pDataElement As IDataElement
      Dim pDETableA As IDETable
     
      Dim pGPU As IGPUtilities
      Set pGPU = New GPUtilities
     
      Set pDataElement = pGPU.MakeDataElement(strTableA, Nothing, Nothing)
      Set pDETableA = pDataElement
     
      Dim pArray As IArray
      Set pArray = New esriSystem.Array
      pArray.Add pDETableA
     
      Dim pFieldMapping As IGPFieldMapping
      Set pFieldMapping = New GPFieldMapping
      '** initialize the field mapping
      pFieldMapping.Initialize pArray, Nothing
     
      '** create a new output field
      Dim TrackIDField As IFieldEdit
      Set TrackIDField = New Field
      TrackIDField.Name = "TRACTID"
      TrackIDField.Type = esriFieldType.esriFieldTypeString
      TrackIDField.Length = 20

      '** create a new FieldMap
      Dim TrackID As IGPFieldMap
      Set TrackID = New GPFieldMap
      Set TrackID.OutputField = TrackIDField
      
      '** find field map STFID containing the input field STFID
      Dim FieldMap_Index As Long, Field_Index As Long
      FieldMap_Index = pFieldMapping.FindFieldMap("STFID")
     
      Dim STFID_FieldMap As IGPFieldMap
      Set STFID_FieldMap = pFieldMapping.GetFieldMap(FieldMap_Index)
     
      Field_Index = STFID_FieldMap.FindInputField(pDETableA, "STFID")
     
      Dim inputField As IField
      Set inputField = STFID_FieldMap.GetField(Field_Index)
     
      TrackID.AddInputField pDETableA, inputField, 5, 10  'starPos, endPos
      '** add the new field map to the field mapping
      pFieldMapping.AddFieldMap TrackID
     
      '** execute Table to Table tool using the FieldMapping
      Dim pParameters As IVariantArray
      Set pParameters = New varArray
      pParameters.Add (strTableA)
      pParameters.Add ("C:"Temp"VBTests"FieldMapping"citiblocks.gdb")
      pParameters.Add "census3"
      pParameters.Add ""
      pParameters.Add pFieldMapping
      GP.Execute "TableToTable_conversion", pParameters, Nothing
      Debug.Print GP.GetMessages(0)
      Exit Sub

    EH:
      Debug.Print GP.GetMessages(2)

    End Sub

     
  • 相关阅读:
    android 运行时异常捕获
    汇编32位寄存器和地址编号的五种书写形式
    各种进制的乘法表,八进制的加法,和数字的源码你,反码,和补码
    第一个c程序和vs2017 在打开MFC rc文件时找不到rcdll.dl
    asdfasdf
    php如何判断一个字符串是否包含另一个字符串
    php计算时间差/两个时间日期相隔的天数,时,分,秒.
    PHP服务器时间差8小时解决方案
    历年学生作品评论
    第一周例行报告
  • 原文地址:https://www.cnblogs.com/flyingfish/p/1081372.html
Copyright © 2011-2022 走看看