Esempio n. 1
0
        private void btnTest_Click(object sender, EventArgs e)
        {
            Exception err = null;

            SysCommon.Gis.SysGisDB dbsys = new SysCommon.Gis.SysGisDB();
            switch (comBoxType.Text)
            {
            case "ESRI文件数据库(*.gdb)":
                dbsys.SetWorkspace(txtDB.Text, SysCommon.enumWSType.GDB, out err);
                break;

            case "ArcSDE(For Oracle)":
                dbsys.SetWorkspace(txtServer.Text, txtInstance.Text, txtDB.Text, txtUser.Text, txtPassword.Text, txtVersion.Text, out err);
                break;

            case "ESRI个人数据库(*.mdb)":
                dbsys.SetWorkspace(txtDB.Text, SysCommon.enumWSType.PDB, out err);
                break;
            }

            if (err != null)
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("连接数据库失败", "原因:" + err.Message);
                return;
            }

            dbsys.Dispose();
            btnOK.Enabled = true;
        }
Esempio n. 2
0
        public override void OnClick()
        {
            #region 获取系统维护库连接信息,并将工作空间保存起来
            if (ModData.TempWks == null)
            {
                bool blnCanConnect            = false;
                SysCommon.Gis.SysGisDB vgisDb = new SysCommon.Gis.SysGisDB();
                if (File.Exists(ModData.v_ConfigPath))
                {
                    //获得系统维护库连接信息
                    SysCommon.Authorize.AuthorizeClass.GetConnectInfo(ModData.v_ConfigPath, out ModData.Server, out ModData.Instance, out ModData.Database, out ModData.User, out ModData.Password, out ModData.Version, out ModData.dbType);
                    //连接系统维护库
                    blnCanConnect = ModDBOperator.CanOpenConnect(vgisDb, ModData.dbType, ModData.Server, ModData.Instance, ModData.Database, ModData.User, ModData.Password, ModData.Version);
                }
                else
                {
                    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "缺失系统维护库连接信息文件:" + ModData.v_ConfigPath + "/n请重新配置");
                    return;
                }
                if (!blnCanConnect)
                {
                    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "系统能够维护库连接失败,请检查!");
                    return;
                }
                ModData.TempWks = vgisDb.WorkSpace;
            }
            if (ModData.TempWks == null)
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "获取系统维护库工作空间失败,请检查!");
                return;
            }
            #endregion
            //获得数据库工程ID
            //long proID = 0;            //工程项目ID
            //string proIDStr = m_Hook.ProjectTree.SelectedNode.Name;  //工程项目ID字符串
            //try { proID = Convert.ToInt64(proIDStr); }
            //catch
            //{
            //    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "获取数据源ID失败!");
            //    return;
            //}

            //进行初始化设置
            FrmInitiaRasterCatalog pFrmInitiaRasterCatalog = new FrmInitiaRasterCatalog(ModData.TempWks, m_Hook, EnumRasterOperateType.Update);
            if (pFrmInitiaRasterCatalog.m_pRootPathfst != "")
            {
                pFrmInitiaRasterCatalog.ShowDialog();
            }
        }
Esempio n. 3
0
        public override void OnClick()
        {
            if (m_Hook == null)
            {
                return;
            }
            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Title            = "选择保存的路径";
            sfd.Filter           = "Dmp文件|*dmp";
            sfd.RestoreDirectory = false;

            if (File.Exists(Mod.v_ConfigPath))
            {
                //工作库
                SysCommon.Gis.SysGisDB vgisDb = new SysCommon.Gis.SysGisDB();
                SysCommon.Authorize.AuthorizeClass.GetConnectInfo(Mod.v_ConfigPath, out Mod.Server, out Mod.Instance, out Mod.Database, out Mod.User, out Mod.Password, out Mod.Version, out Mod.dbType);
            }
            switch (Mod.dbType)
            {
            case "SDE":
                sfd.Filter = "DMP文件|*.dmp";
                break;

            case "PDB":
                sfd.Filter = "Access文件|*.mdb";
                break;

            case "GDB":
                sfd.Filter = "GDB文件|*.gdb";
                break;

            default:
                break;
            }

            if (sfd.ShowDialog() == DialogResult.OK)
            {
                SysCommon.CProgress vProgress = new SysCommon.CProgress("进度条");
                vProgress.EnableCancel    = false;
                vProgress.ShowDescription = true;
                vProgress.FakeProgress    = true;
                vProgress.TopMost         = true;
                vProgress.ShowProgress();

                string fileName = sfd.FileName;
                switch (Mod.dbType)
                {
                case "SDE":
                    vProgress.SetProgress("备份SDE数据库");
                    sfd.Filter = "DMP文件|*.dmp";
                    vProgress.SetProgress("备份SDE数据库" + Mod.User + "用户");
                    ModSystemExport.ExeCommand("Exp " + Mod.User + "/" + Mod.Password + "@" + Mod.Database + " file=" + fileName.Substring(0, fileName.IndexOf(".")) + "[" + Mod.User + "].dmp log=" + fileName.Substring(0, fileName.IndexOf(".")) + "[" + Mod.User + "]");
                    System.Threading.Thread.Sleep(20000);
                    vProgress.SetProgress("备份SDE数据库sde用户");
                    ModSystemExport.ExeCommand("Exp sde/sde@" + Mod.Database + " file=" + fileName.Substring(0, fileName.IndexOf(".")) + "_sde.dmp log=" + fileName.Substring(0, fileName.IndexOf(".")) + "_sde");
                    System.Threading.Thread.Sleep(20000);
                    break;

                case "PDB":
                    vProgress.SetProgress("备份Access数据库");
                    sfd.Filter = "Access文件|*.mdb";
                    File.Copy(Mod.Server, fileName);
                    break;

                case "GDB":
                    vProgress.SetProgress("备份GDB数据库");
                    sfd.Filter = "GDB文件|*.gdb";
                    CopyGdb(Mod.Server, fileName);
                    break;

                default:
                    break;
                }
                vProgress.Close();
            }
        }
Esempio n. 4
0
        public override void OnClick()
        {
            Exception outError = null;

            ////////guozheng 2011-3-14 added
            if (this.m_DBConInfoele == null)
            {
                return;
            }
            string sDBConStr  = this.m_DBConInfoele.GetAttribute("数据库连接信息");
            string sDBID      = this.m_DBConInfoele.GetAttribute("数据库ID");
            string sDBType    = this.m_DBConInfoele.GetAttribute("数据库类型");
            string sDBFormate = this.m_DBConInfoele.GetAttribute("数据库平台");

            //cyf 20110603 delete
            //if (sDBFormate != "ARCGISSDE") return;
            //end
            if (string.IsNullOrEmpty(sDBConStr))
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "获取数据库工程的连接信息失败"); return;
            }
            //////////不为SDE数据库不进行任务分配///////
            /////////首先获取SDE上的Workspace///////////

            //cyf 20110603 modify:连接geodatabase
            //IPropertySet pPropSet = new PropertySetClass();
            SysCommon.Gis.SysGisDB pSysDb = new SysCommon.Gis.SysGisDB();
            //IWorkspaceFactory pSdeFact = new SdeWorkspaceFactoryClass();
            string[] SDEConnectInfo = null;
            try
            {
                SDEConnectInfo = sDBConStr.Split('|');
                if (SDEConnectInfo.Length < 7)
                {
                    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "获取数据库工程用户库数据集失败"); return;
                }
                //pPropSet.SetProperty("SERVER", SDEConnectInfo[0]);
                //pPropSet.SetProperty("INSTANCE", SDEConnectInfo[1]);
                //pPropSet.SetProperty("DATABASE", SDEConnectInfo[2]);
                //pPropSet.SetProperty("USER", SDEConnectInfo[3]);
                //pPropSet.SetProperty("PASSWORD", SDEConnectInfo[4]);
                //pPropSet.SetProperty("VERSION", SDEConnectInfo[5]);
                //this.m_SDEWs = pSdeFact.Open(pPropSet, 0);
                if (sDBFormate == enumInterDBFormat.ARCGISGDB.ToString())
                {
                    pSysDb.SetWorkspace(SDEConnectInfo[2], SysCommon.enumWSType.GDB, out outError);
                }
                else if (sDBFormate == enumInterDBFormat.ARCGISPDB.ToString())
                {
                    pSysDb.SetWorkspace(SDEConnectInfo[2], SysCommon.enumWSType.PDB, out outError);
                }
                else if (sDBFormate == enumInterDBFormat.ARCGISPDB.ToString())
                {
                    pSysDb.SetWorkspace(SDEConnectInfo[0], SDEConnectInfo[1], SDEConnectInfo[2], SDEConnectInfo[3], SDEConnectInfo[4], SDEConnectInfo[5], out outError);
                }
                if (outError != null)
                {
                    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "连接Geodatabase库体失败," + outError.Message);
                    return;
                }
                this.m_SDEWs = pSysDb.WorkSpace;
            }
            catch (Exception eError)
            {
                /////系统运行日志
                if (null == ModData.SysLog)
                {
                    ModData.SysLog = new SysCommon.Log.clsWriteSystemFunctionLog();
                }
                ModData.SysLog.Write(eError);
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "连接Geodatabase库体失败," + eError.Message);
                return;
            }
            //end
            /////////获取本地的任务分配图层,转储至SDE中////////
            IDataset      pUserDataSet  = null; ///////////////////////用户库数据集
            IFeatureClass pTaskRangeCls = null; ////////////////Range图层

            try
            {
                if (SDEConnectInfo[6].Trim() == "")
                {
                    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "目标库数据集不存在,请先创建数据库!");
                    return;
                }
                pUserDataSet = (this.m_SDEWs as IFeatureWorkspace).OpenFeatureDataset(SDEConnectInfo[6]);
                Exception ex = null;
                pTaskRangeCls = CreateTaskRangeLayerInSDE("RANGE", this.m_SDEWs, pUserDataSet, out ex);
                if (ex != null)
                {
                    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "SDE中建立任务范围图层失败," + ex.Message);
                    return;
                }
            }
            catch (Exception eError)
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", eError.Message);
                if (null == ModData.SysLog)
                {
                    ModData.SysLog = new SysCommon.Log.clsWriteSystemFunctionLog();
                }
                ModData.SysLog.Write(eError);
                return;
            }
            ////////获取本地的数据库图层,导入至SDE图层中///////////////
            FrmGetTaskLayerGuide GetTaskLayerGuideFrm = new FrmGetTaskLayerGuide(m_Hook, this.m_SDEWs, sDBID);

            GetTaskLayerGuideFrm.ShowDialog();
        }