すぐ先のワークスペースにコピーされたAE大きなデータ

1  公共 ブール fc2fc(IFeatureClass pInFeatureClass、IWorkspace pOutWorkspace文字列 pOutDataSName、文字列 poutFatureName、IQueryFilter queryFilter = ヌル2          {
 3              IDataset pIndataset = NULL ;
4              IDataset pOutDataset = NULL ;
5              試みる
6              {
 7                  場合(pInFeatureClass == NULL || pOutWorkspace == NULL ||  .IsNullOrEmpty(poutFatureName))リターン ;
8                  IFeatureClassName pInFeatureclassName。
9                  pIndataset = (IDataset)pInFeatureClass。
10                  pInFeatureclassName = (IFeatureClassName)pIndataset.FullName。
11                  IFeatureClassName pOutFeatureClassName。
12                  IDatasetName pOutDatasetName。
13                  pOutDataset = (IDataset)pOutWorkspace。
14                  pOutFeatureClassName = 新しいFeatureClassNameClass()。
15                  pOutDatasetName = (IDatasetName)pOutFeatureClassName。
16                 pOutDatasetName.WorkspaceName = (IWorkspaceName)pOutDataset.FullName。
17                  pOutDatasetName.Name = poutFatureName。
18                  IFields pInFields、pOutFields。
19                  IFieldChecker pFieldChecker = 新しいFieldCheckerClass()。
20                  IEnumFieldError PERROR。
21                  pInFields =のpInFeatureClass.Fields。
22                  列pShapeFieldName = pInFeatureClass.ShapeFieldName。
23                  INT pFieldIndex = pInFeatureClass.FindField(pShapeFieldName)。
24                 IField内pShapeField = pInFields.get_Field(pFieldIndex)。
25                  IGeometryDef pTargetGeometryDef = pShapeField.GeometryDef。
26                  であれば(pTargetGeometryDef.HasZ || pTargetGeometryDef.HasM)
 27                  {
 28                      IGeometryDefEdit pGeoDefEdit = pTargetGeometryDef としてIGeometryDefEdit。
29                      pGeoDefEdit.HasZ_2 = ;
30                      pGeoDefEdit.HasM_2 = 31                  }
 32                  pFieldChecker.Validate(pInFields、アウト perrorは、アウトpOutFields)。
33                  Console.WriteLineを(PERROR)。
34                  IEnumDatasetName pEnumDatasetName =(pOutWorkspace としてIWorkspace).get_DatasetNames(esriDatasetType.esriDTFeatureDataset)。
35                  pEnumDatasetName.Reset()。
36                  IDatasetName pDatasetName = pEnumDatasetName.Next()。
37                  IFeatureDatasetName datasetName = NULL ;
38                  一方(pDatasetName!= NULL 39                  {
 40                      であれば(pDatasetName.Type ==esriDatasetType.esriDTFeatureDataset)
 41                      {
 42                          であれば(pDatasetName.Name == pOutDataSName)
 43                          {
 44                              datasetName = pDatasetName としてIFeatureDatasetName。
45                              ブレーク;
46                          }
 47                      }
 48                  }
 49                      
50  
51                  IFeatureDataConverter one2another = 新しいFeatureDataConverterClass()。
52は                 試す
53                  {
 54                      場合を(pOutWorkspace.Type == esriWorkspaceType.esriRemoteDatabaseWorkspace)
 55                      {
 56                          one2another.ConvertFeatureClass(pInFeatureclassName、ヌル、datasetName、pOutFeatureClassName、pTargetGeometryDef、
 57                                                  pOutFields、"" 1000年0 );
58                      }
 59                      他の
60                      {
 61                          one2another.ConvertFeatureClass(pInFeatureclassName、queryFilter、datasetName、pOutFeatureClassName、pTargetGeometryDef、pOutFields、""1000年0 );
62                      }
 63                  }
 64                  最後に
65                  {
 66                      であれば(one2another!= NULL 67                          Marshal.ReleaseComObject(one2another)。
68                  }
 69                  リターン 70              }
 71              キャッチ(例外EX)
 72              {
 73                  LogAPI.Debug(EX)。
74                  試みる
75                  {
 76                     InsertFeatureToFeature(pInFeatureClass、(pOutWorkspace としてIFeatureWorkspace).OpenFeatureClass(poutFatureName)、queryFilter)。
77                  }
 78                  キャッチ(例外EX2)
 79                  {
 80                      LogAPI.Debug(EX2)。
81                  }
 82                  リターン 83              }
 84              最後に
85              {
 86                  // 場合(pIndataset = NULL!)
 87                  //     Marshal.FinalReleaseComObject(pIndataset)。
88                  //(もし!pOutDataset =ヌル)
 89                  //     Marshal.FinalReleaseComObject(pOutDataset)。
90              }
 91          }

 

おすすめ

転載: www.cnblogs.com/baimy/p/11606477.html