using System; using System.Collections.Generic; using System.Text; using FirebirdSql.Data.FirebirdClient; using System.Data; using System.Collections; namespace FPER { /******************************************************************************************* * TB_REPEATER(Áß°è±â) ¼³Á¤ °ü·Ã Dac *******************************************************************************************/ public class DacRepeaterConfig : DacBase { public DacRepeaterConfig(int ID) : base(ID) // cyim 2015.7.30 µ¥ÀÌŸº£À̽º Á¢¼Ó ·çƾ º¯°æ { //try { // base.Connect(); //} //catch (Exception ex) { // Util.UErrorMessage(ex, 0, 0); //} } ~DacRepeaterConfig() { //try { // base.DisConnect(); //} //catch (Exception ex) { // Util.UErrorMessage(ex, 0, 0); //} } //Áß°è±âÁ¶È¸ public DataTable Repeater_Select(int RECEIVER_ID, int BOARD_ID, int LOOP_NO, int REPEATER_ID, String UseFlag) { DataTable dt = null; try { String SQL = ""; //RECEIVER_ID INTEGER NOT NULL, /* RECEIVER ID (1 - 32) */ //COMM_ID INTEGER NOT NULL, /* COMM ID (1 - 4) */ //BOARD_ID INTEGER NOT NULL, /* BOARD ID (1 - 16) */ //LOOP_NO INTEGER NOT NULL, /* LOOP NO. (0 - 1) */ //REPEATER_ID INTEGER NOT NULL, /* REPEATER ID (1 - 126) */ //REPEATER_NAME VARCHAR(40), /* REPEATER NAME */ //REPEATER_TYPE VARCHAR(1), /* REPEATER TYPE */ // /* '1':2X2, '2':4X4 */ // /* '4': ¾Æ³¯·Î±×¿¬°¨Áö±â */ // /* '5': ¾Æ³¯·Î±×¿­°¨Áö±â */ //USE_FLAG VARCHAR(1), /* USE FLAG (Y/N) */ if (REPEATER_ID < 1) // Repeater ID°¡ 0À̸é.. Àüü Áß°è±â °ªÀ» °¡Á®¿È. { SQL += "SELECT REPEATER_ID,REPEATER_NAME,REPEATER_TYPE,USE_FLAG,CUT_FLAG,POSITION_CODE"; SQL += " FROM TB_REPEATER WHERE RECEIVER_ID = {0} AND COMM_ID = 1 AND BOARD_ID = {1} AND LOOP_NO = {2} "; if (UseFlag != null) SQL += " AND USE_FLAG = '" + UseFlag + "'"; SQL += " ORDER BY REPEATER_ID"; SQL = String.Format(SQL, RECEIVER_ID, BOARD_ID, LOOP_NO); } else { SQL += "SELECT REPEATER_ID,REPEATER_NAME,REPEATER_TYPE,USE_FLAG,CUT_FLAG,POSITION_CODE"; SQL += " FROM TB_REPEATER WHERE RECEIVER_ID = {0} AND COMM_ID = 1 AND BOARD_ID = {1} AND LOOP_NO = {2} AND REPEATER_ID = {3}"; if (UseFlag != null) SQL += " AND USE_FLAG = '" + UseFlag + "'"; SQL = String.Format(SQL, RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID); } DataSet dao = Select(SQL); dt = dao.Tables[0]; } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); throw ex; } return dt; } public DataTable SelectRepeater(int RECEIVER_ID) { DataTable dt = null; try { String SQL = ""; //RECEIVER_ID INTEGER NOT NULL, /* RECEIVER ID (1 - 32) */ //COMM_ID INTEGER NOT NULL, /* COMM ID (1 - 4) */ //BOARD_ID INTEGER NOT NULL, /* BOARD ID (1 - 16) */ //LOOP_NO INTEGER NOT NULL, /* LOOP NO. (0 - 1) */ //REPEATER_ID INTEGER NOT NULL, /* REPEATER ID (1 - 126) */ //REPEATER_NAME VARCHAR(40), /* REPEATER NAME */ //REPEATER_TYPE VARCHAR(1), /* REPEATER TYPE */ // /* '1':2X2, '2':4X4 */ // /* '4': ¾Æ³¯·Î±×¿¬°¨Áö±â */ // /* '5': ¾Æ³¯·Î±×¿­°¨Áö±â */ //USE_FLAG VARCHAR(1), /* USE FLAG (Y/N) */ SQL += "SELECT REPEATER_ID,REPEATER_NAME,REPEATER_TYPE,BOARD_ID,LOOP_NO,USE_FLAG,CUT_FLAG,POSITION_CODE"; SQL += " FROM TB_REPEATER WHERE RECEIVER_ID = {0} AND COMM_ID = 1 "; SQL += " AND USE_FLAG = 'Y'"; SQL += " ORDER BY REPEATER_ID"; SQL = String.Format(SQL, RECEIVER_ID); DataSet dao = Select(SQL); dt = dao.Tables[0]; } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); throw ex; } return dt; } public DataTable SelectRepeater2(int RECEIVER_ID) { DataTable dt = null; try { String SQL = ""; //RECEIVER_ID INTEGER NOT NULL, /* RECEIVER ID (1 - 32) */ //COMM_ID INTEGER NOT NULL, /* COMM ID (1 - 4) */ //BOARD_ID INTEGER NOT NULL, /* BOARD ID (1 - 16) */ //LOOP_NO INTEGER NOT NULL, /* LOOP NO. (0 - 1) */ //REPEATER_ID INTEGER NOT NULL, /* REPEATER ID (1 - 126) */ //REPEATER_NAME VARCHAR(40), /* REPEATER NAME */ //REPEATER_TYPE VARCHAR(1), /* REPEATER TYPE */ // /* '1':2X2, '2':4X4 */ // /* '4': ¾Æ³¯·Î±×¿¬°¨Áö±â */ // /* '5': ¾Æ³¯·Î±×¿­°¨Áö±â */ //USE_FLAG VARCHAR(1), /* USE FLAG (Y/N) */ SQL += "SELECT R.REPEATER_ID, R.REPEATER_NAME, R.REPEATER_TYPE, R.BOARD_ID, R.LOOP_NO, R.CUT_FLAG, R.POSITION_CODE, P.POSITION_NAME"; SQL += " FROM TB_REPEATER R LEFT OUTER JOIN TB_POSITION_CODE P ON R.POSITION_CODE = P.POSITION_CODE "; SQL += " WHERE RECEIVER_ID = {0} AND COMM_ID = 1 "; SQL += " AND USE_FLAG = 'Y'"; SQL += " ORDER BY REPEATER_ID"; SQL = String.Format(SQL, RECEIVER_ID); DataSet dao = Select(SQL); dt = dao.Tables[0]; } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); throw ex; } return dt; } // ½ÇÁ¦·Î Å×À̺íÀÌ Á¸ÀçÇÏ´ÂÁö üũÇÏ´Â ÇÔ¼ö public bool Table_Exist(string TABLE_NAME) { DataTable dt = null; try { string SQL = "select rdb$relation_name "; SQL = SQL + "from rdb$relations "; SQL = SQL + "where rdb$system_flag=0 "; SQL = SQL + "and rdb$relation_name = '" + TABLE_NAME + "'"; SQL = String.Format(SQL); DataSet dao = Select(SQL); dt = dao.Tables[0]; if (dt.Rows.Count != 0) return true; } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); } return false; } // cyim 2015.7.2 ÇØ½¬Å×À̺í·Î ¾Æ³¯·Î±× °¨Áö±â ·¹º§À» ¾ÆÀ̵𺰷ΠÀúÀåÇØµÐ´Ù : ¾Æ³¯·Î±× °¨Áö±â ·¹º§°ª public DataTable SelectRepeater_AnalogDetecterLevel(int RECEIVER_ID) { DataTable dt = null; if (Table_Exist("TB_ANALOG_DEVICE_2") == true) // cyim 2015.7.10 Å×À̺íÀÌ Á¸ÀçÇÏ´ÂÁö ¸ÕÀú »ìÆìº¸µµ·ÏÇÔ { try { String SQL = ""; SQL += "SELECT R.RECEIVER_ID, R.BOARD_ID, R.LOOP_NO, R.REPEATER_ID, R.REPEATER_NAME, R.REPEATER_TYPE, R.CUT_FLAG, P.FAULT_VALUE, P.PREFIRE_VALUE, P.FIRED_VALUE, P.FIREN_VALUE "; SQL += " FROM TB_REPEATER R LEFT OUTER JOIN TB_ANALOG_DEVICE_2 P "; SQL += " ON (R.RECEIVER_ID = P.RECEIVER_ID AND R.COMM_ID = P.COMM_ID AND R.BOARD_ID = P.BOARD_ID AND R.LOOP_NO = P.LOOP_NO AND R.REPEATER_ID = P.REPEATER_ID) "; SQL += " WHERE R.RECEIVER_ID = {0} AND R.COMM_ID = 1 "; SQL += " AND R.USE_FLAG = 'Y' AND (R.REPEATER_TYPE = 4 OR R.REPEATER_TYPE = 5)"; // cyim 2016.06.15 : ¾Æ³¯·Î±× °¨Áö±â Ãâ·Â Æ÷ÀÎÆ® °í·Á : ·¹º§°ªÀº ÀÔ·ÂÆ÷ÀÎÆ®¸¸ °í·ÁÇÑ´Ù // Ãâ·ÂÆ÷ÀÎÆ®°¡ ÀÖÀ»°æ¿ì¿¡´Â ·¹º§°ª Á¶È¸½Ã Áß°è±â ¾ÆÀ̵𰡠Áߺ¹µÇ¾î ¹ö¸°´Ù SQL += " AND INOUT_TYPE ='I' "; SQL = String.Format(SQL, RECEIVER_ID); DataSet dao = Select(SQL); dt = dao.Tables[0]; } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); } } return dt; } //Áß°è±âÀúÀå public void Repeater_Clear(int RECEIVER_ID) { try { //String SQL = "UPDATE TB_REPEATER SET USE_FLAG = 'N' WHERE RECEIVER_ID = {0} AND COMM_ID = 1"; //SQL = String.Format(SQL, RECEIVER_ID); String SQL = "DELETE FROM TB_DEVICE WHERE RECEIVER_ID = {0} AND COMM_ID = 1"; SQL = String.Format(SQL, RECEIVER_ID); ExecuteNonQuery(SQL); SQL = "DELETE FROM TB_REPEATER WHERE RECEIVER_ID = {0} AND COMM_ID = 1"; SQL = String.Format(SQL, RECEIVER_ID); ExecuteNonQuery(SQL); } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); throw ex; } } //Áß°è±âÀúÀå public void Repeater_Update(QUERYMode cmd, int RECEIVER_ID, int BOARD_ID, int LOOP_NO, int REPEATER_ID , String REPEATER_NAME, String REPEATER_TYPE, String USE_FLAG) { try { DataTable dt = Repeater_Select(RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID, null); if (cmd == QUERYMode.insert || cmd == QUERYMode.update || cmd == QUERYMode.InsertAndUpdate) { String SQL = ""; if (dt.Rows.Count > 0) { SQL = "UPDATE TB_REPEATER SET REPEATER_NAME = '{0}'"; SQL += ", REPEATER_TYPE = '{1}', USE_FLAG = '{2}'"; SQL += ", UPDATE_USER_ID = 'FPER', UPDATE_TIME = current_timestamp"; SQL += " WHERE RECEIVER_ID = {3} AND COMM_ID = 1 AND BOARD_ID = {4} AND LOOP_NO = {5} AND REPEATER_ID = {6}"; SQL = String.Format(SQL, REPEATER_NAME, REPEATER_TYPE, USE_FLAG, RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID); } else { SQL = "INSERT INTO TB_REPEATER ( "; SQL += " RECEIVER_ID,COMM_ID,BOARD_ID,LOOP_NO,REPEATER_ID,REPEATER_NAME,REPEATER_TYPE,USE_FLAG,CUT_FLAG,UPDATE_USER_ID,UPDATE_TIME"; SQL += ") VALUES ({0},1,{1},{2},{3},'{4}','{5}','{6}','N','FPER',current_timestamp)"; SQL = String.Format(SQL, RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID, REPEATER_NAME, REPEATER_TYPE, USE_FLAG); } ExecuteNonQuery(SQL); } else if (cmd == QUERYMode.delete) { //if (dt.Rows.Count < 1) //{ // throw new Exception("ÇØ´ç ÀڷḦ ãÀ»¼ö ¾ø½À´Ï´Ù."); //} String SQL = "DELETE FROM TB_REPEATER WHERE RECEIVER_ID = {0} AND COMM_ID = 1 AND BOARD_ID = {1} AND LOOP_NO = {2} AND REPEATER_ID = {3}"; SQL = String.Format(SQL, RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID); ExecuteNonQuery(SQL); } } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); throw ex; } } public void Repeater_Cut_Update(int RECEIVER_ID, int BOARD_ID, int LOOP_NO, int REPEATER_ID, string CUT_FLAG) { try { DataTable dt = Repeater_Select(RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID, null); String SQL = ""; if (dt.Rows.Count > 0) { SQL = "UPDATE TB_REPEATER SET CUT_FLAG = '{0}'"; SQL += ", UPDATE_USER_ID = 'FPER', UPDATE_TIME = current_timestamp"; SQL += " WHERE RECEIVER_ID = {1} AND COMM_ID = 1 AND BOARD_ID = {2} AND LOOP_NO = {3} AND REPEATER_ID = {4}"; SQL = String.Format(SQL, CUT_FLAG, RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID); ExecuteNonQuery(SQL); } else { throw new Exception("ÇØ´ç ÀڷḦ ãÀ»¼ö ¾ø½À´Ï´Ù."); } } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); throw ex; } } //LOOPÁ¶È¸¸®½ºÆ® ÀüüÃß°¡ public ArrayList Repeater_ListALL(int RECEIVER_ID, int BOARD_ID, int LOOP_NO) { ArrayList ary = new ArrayList(); ary.Add(new cboitem("-1", "Àüü")); try { DataTable dt = Repeater_Select(RECEIVER_ID, BOARD_ID, LOOP_NO, 0, "Y"); if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { //REPEATER_ID,REPEATER_NAME,REPEATER_TYPE String REPEATER_ID = Convert.ToString(dr["REPEATER_ID"]); String REPEATER_NAME = Convert.ToString(dr["REPEATER_NAME"]); String REPEATER_TYPE = Convert.ToString(dr["REPEATER_TYPE"]); ary.Add(new cboitem(REPEATER_ID, REPEATER_ID)); } } } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); throw ex; } return ary; } } }