/// <summary> /// 同步Oracle数据 /// </summary> /// <param name="dbORA">Oracle数据库连接</param> /// <param name="dbMDB">mdb数据库连接</param> /// <returns></returns> public static bool SynORA(DatabaseORC dbORA, DatabaseOledb dbMDB) { try { bool b = true; string mdbSQL = "select * from 采矿申请登记 where 签发时间 is not null"; DataTable dt = dbMDB.GetDataSet(mdbSQL).Tables[0]; DataRow dr = null; string oraSQL = string.Empty; string upSQL = string.Empty; #region 更新『采矿申请登记』表 for (int i = 0; i < dt.Rows.Count; i++) { dr = dt.Rows[i]; oraSQL = "select * from 采矿申请登记 where 项目档案号='" + dr["项目档案号"] + "' and 签发时间=to_date('" + dr["签发时间"] + "','yyyy-mm-dd hh24:mi:ss')"; DataSet ds = dbORA.GetDataSet(oraSQL); if (!(ds.Tables[0].Rows.Count > 0)) { upSQL = UpdateSQL(dr, "采矿申请登记"); dbORA.ExecuteSql(upSQL); } } #endregion #region 更新『项目档案』表 mdbSQL = "select * from 项目档案 where 签发时间 is not null"; dt = dbMDB.GetDataSet(mdbSQL).Tables[0]; for (int i = 0; i < dt.Rows.Count; i++) { dr = dt.Rows[i]; //oraSQL = "select * from 采矿申请登记 where 项目档案号='" + dr["项目档案号"] + "' and 签发时间 is not null and to_char(签发时间,'yyyy-mm-dd,hh:mi:ss')='" + dr["签发时间"] + "'"; oraSQL = "select * from 项目档案 where 项目档案号='" + dr["项目档案号"] + "' and 签发时间=to_date('" + dr["签发时间"] + "','yyyy-mm-dd hh24:mi:ss')"; DataSet ds = dbORA.GetDataSet(oraSQL); if (!(ds.Tables[0].Rows.Count > 0)) { upSQL = UpdateSQL(dr, "项目档案"); dbORA.ExecuteSql(upSQL); } } #endregion return(b); } catch (Exception ex) { Log.WriteLog("SynORA同步错误>>>>" + ex.Message); errorMsg = "同步MapGIS一张图数据库时出错,请检查相关配置信息!"; return(false); throw ex; } }
/// <summary> /// 同步图形中的CKSQDJ图层数据 /// </summary> /// <param name="dbMDB">MDB数据库对象</param> /// <param name="IGSUri">IGS服务地址</param> /// <returns></returns> public static bool SynIGS(DatabaseOledb dbMDB, string IGSUri) { try { bool b = true; //CM.Map.Feature f = new CM.Map.Feature("http://" + IGSUri + "/IGSLandService/Feature.asmx"); WebFeature.Feature f = new WebFeature.Feature(); f.Url = "http://" + IGSUri + "/IGSLandService/Feature.asmx";; string mdbSQL = "select * from 采矿申请登记 where 签发时间 is not null"; DataTable dt = new DataTable(); #region 判断是否查询到数据,若未查询到数据则不需要进行后面的判断 if (dbMDB.GetDataSet(mdbSQL).Tables.Count > 0) { try { dt = dbMDB.GetDataSet(mdbSQL).Tables[0]; DebugInfo("查询到数据"); } catch (Exception ex) { errorMsg = "同步错误,请检查采矿权数据库设置!"; return(false); throw ex; } } else { errorMsg = "同步错误,采矿权数据库(MDB)中未查询到数据!"; return(false); } #endregion DataRow dr = null; #region 遍历采矿申请登记表,更新采矿权图层 for (int i = 0; i < dt.Rows.Count; i++) { dr = dt.Rows[i]; try { b = UpdateFeature(f, dr) && b; //Log.WriteLog(string.Format(b.ToString() + "循环第{0}次", i + 1)); if (!b) { DebugInfo("UpdateFeature()失败!"); return(b); } //else // continue; } catch (Exception ex) { Log.WriteLog("UpdateFeature()>>>>" + ex.Message); return(false); throw ex; } } #endregion #region 查询项目档案中已注销矿权信息 #region 重新初始化数据对象 mdbSQL = string.Empty; dt = null; dr = null; #endregion mdbSQL = "select * from 项目档案 where 项目类型=1070"; if (dbMDB.GetDataSet(mdbSQL).Tables.Count > 0) { try { //Log.WriteLog(mdbSQL); dt = dbMDB.GetDataSet(mdbSQL).Tables[0]; } catch (Exception ex) { errorMsg = "同步错误,请检查采矿权数据库设置!"; return(false); throw ex; } } else { b = b && true; } #endregion #region 遍历项目档案登记表,删除已注销矿权 for (int i = 0; i < dt.Rows.Count; i++) { dr = dt.Rows[i]; try { b = DelFeature(f, dr) && b; //Log.WriteLog(string.Format("DelFeature()>>>>"+b.ToString() + "循环第{0}次", i + 1)); if (!b) { return(b); } //else // continue; } catch (Exception ex) { Log.WriteLog("DelFeature()>>>>" + ex.Message); return(false); throw ex; } } #endregion return(b); } catch (Exception ex) { Log.WriteLog("SynIGS错误>>>>" + ex.Message); errorMsg = "同步图形错误!"; return(false); throw ex; } }