Example #1
0
        private void method_11()
        {
            IReplicaDescription rDDescription = new ReplicaDescriptionClass();

            rDDescription.Init(this.ienumName_0, this.iworkspaceName_0, this.bool_1,
                               esriDataExtractionType.esriDataCheckOut);
            rDDescription.ReplicaModelType = esriReplicaModelType.esriModelTypeFullGeodatabase;
            ICheckOut @out = new CheckOutClass();

            ESRI.ArcGIS.GeoDatabaseDistributed.IFeatureProgress_Event event2 =
                @out as ESRI.ArcGIS.GeoDatabaseDistributed.IFeatureProgress_Event;
            base.InitEvent(event2);
            try
            {
                if (this.bool_2)
                {
                    @out.CheckOutSchema(rDDescription, this.string_0);
                }
                else
                {
                    @out.CheckOutData(rDDescription, this.bool_0, this.string_0);
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.ToString());
            }
            finally
            {
                base.ReleaseEvent(event2);
            }
        }
Example #2
0
 private void method_11()
 {
     try
     {
         IReplicaDescription rSDescription = new ReplicaDescriptionClass();
         rSDescription.Init(this.ienumName_0, this.iworkspaceName_0, this.bool_1,
                            esriDataExtractionType.esriDataExtraction);
         rSDescription.ReplicaModelType = esriReplicaModelType.esriModelTypeFullGeodatabase;
         IDataExtraction extraction = new DataExtractionClass();
         ESRI.ArcGIS.GeoDatabaseDistributed.IFeatureProgress_Event event2 =
             extraction as ESRI.ArcGIS.GeoDatabaseDistributed.IFeatureProgress_Event;
         base.InitEvent(event2);
         try
         {
             if (this.bool_2)
             {
                 extraction.ExtractSchema(rSDescription, null);
             }
             else
             {
                 extraction.Extract(rSDescription, this.bool_0);
             }
         }
         catch (Exception)
         {
         }
         finally
         {
             base.ReleaseEvent(event2);
         }
     }
     catch
     {
     }
 }
Example #3
0
        /// <summary>
        /// 签出数据
        /// </summary>
        /// <param name="pMasterWorkspace">源工作空间</param>
        /// <param name="featureClassName">要素类的名字</param>
        /// <param name="featureDatasetName">数据集的名字</param>
        /// <param name="checkoutName">版本名称</param>
        /// <param name="onlySchema">是否只签出结构</param>
        /// <param name="reuseSchema">是否重用已有的结构</param>
        /// <param name="fileName">文件名</param>
        /// <param name="dataExtractionType">数据提取的类型(checkout或只导出数据)</param>
        /// <param name="replicaModelType">简单图层或与源工作空间结构相同</param>
        public void CheckOut(IWorkspace pMasterWorkspace,
                             string[] featureClassName,   //要素类类的名字
                             string[] featureDatasetName, //数据集的名字
                             string checkoutName,
                             bool onlySchema,
                             bool reuseSchema,
                             string fileName,
                             esriDataExtractionType dataExtractionType,
                             esriReplicaModelType replicaModelType)
        {
            if (File.Exists(fileName))
            {
                File.Delete(fileName);
            }
            bool             hasVersion       = false;
            string           versionName      = System.IO.Path.GetFileNameWithoutExtension(fileName);
            IEnumVersionInfo pEnumVersionInfo = (pMasterWorkspace as IVersionedWorkspace).Versions;

            if (pEnumVersionInfo != null)
            {
                pEnumVersionInfo.Reset();
                IVersionInfo pVersionInfo = pEnumVersionInfo.Next();
                while (pVersionInfo != null)
                {
                    if (pVersionInfo.VersionName == "SDE." + checkoutName)
                    {
                        hasVersion = true;
                        break;
                    }
                    pVersionInfo = pEnumVersionInfo.Next();
                }
            }
            if (hasVersion)
            {
                IVersion pVersion = (pMasterWorkspace as IVersionedWorkspace).FindVersion(versionName);
                if (pVersion != null)
                {
                    pVersion.Delete();
                }
            }

            IPropertySet pCheckOutPropSet = new PropertySetClass();

            pCheckOutPropSet.SetProperty("Database", fileName);
            IWorkspaceFactory pCheckOutWorkFact = new AccessWorkspaceFactoryClass();
            string            path = System.IO.Path.GetDirectoryName(fileName);
            IWorkspaceName    pCheckOutWorkspaceName = pCheckOutWorkFact.Create(path, checkoutName, pCheckOutPropSet, 0);
            IName             pName = pCheckOutWorkspaceName as IName;
            IWorkspace        pCheckOutWorkspace = pName.Open() as IWorkspace;

            if (pCheckOutWorkspace != null)
            {
                IFeatureWorkspace   pMasterFeaWorkspace = pMasterWorkspace as IFeatureWorkspace;
                IFeatureClass       pFeaClass;
                IFeatureDataset     pFeatureDataset;
                IDataset            pDS;
                IEnumNameEdit       pEnumNameEdit = new NamesEnumeratorClass();
                IEnumName           pEnumName;
                IReplicaDescription pRepDescription = new ReplicaDescriptionClass();

                for (int i = 0; i < featureClassName.Length; i++)
                {
                    pFeaClass = pMasterFeaWorkspace.OpenFeatureClass(featureClassName[i]);
                    pDS       = pFeaClass as IDataset;
                    pEnumNameEdit.Add(pDS.FullName as IName);
                }

                for (int i = 0; i < featureDatasetName.Length; i++)
                {
                    pFeatureDataset = pMasterFeaWorkspace.OpenFeatureDataset(featureDatasetName[i]);
                    pDS             = pFeatureDataset as IDataset;
                    pEnumNameEdit.Add(pDS.FullName as IName);
                }

                pEnumName = pEnumNameEdit as IEnumName;
                pRepDescription.Init(pEnumName, pCheckOutWorkspaceName, false, dataExtractionType);
                pRepDescription.ReplicaModelType = replicaModelType;//简单图层类型或与SDE数据库一样
                ICheckOut pCheckOut = new CheckOutClass();
                try
                {
                    pCheckOut.CheckOutData(pRepDescription, true, checkoutName);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("可能是备份的SDE数据没有注册为版本,或者是由于该文件名上次已经作为一个版本号存在数据库中。" + ex.ToString());
                }
                pCheckOutWorkspace = null;
                GC.Collect();
            }
        }