public bool checkAuth(string person_id, string object_id) { if (true) { return(true); } string sql = "SELECT NVL ( (SELECT 1 FROM TB_OBJECT WHERE OBJECT_ID = '" + person_id + "' AND ( ATTR3 IS NULL OR ATTR3 = (SELECT USER_ID FROM TB_PERSON WHERE OBJECT_ID = '" + object_id + "' ) ) ), 0 ) AUTH FROM DUAL"; // 신규 쿼리.. // ADMIN은 수정이 되어야 해.. sql = "SELECT RESULT1 + RESULT2 RESULT FROM ( " + " SELECT NVL ( (SELECT 1 FROM TB_OBJECT WHERE OBJECT_ID = '" + person_id + "' AND ( ATTR3 IS NULL OR ATTR3 = (SELECT USER_ID FROM TB_PERSON WHERE OBJECT_ID = '" + object_id + "') ) ), 0 ) RESULT1, " + " (SELECT NVL( MAX(OBJECT_ID), 0 ) RES FROM TB_ADMINTEAM WHERE CODE IN ( SELECT DEPT_CODE FROM TB_PERSON WHERE OBJECT_ID = '" + person_id + "' ) ) RESULT2 FROM DUAL ) "; OraDB DB = new OraDB(); string result = DB.GetQueryResult <string>(sql, delegate(OracleDataReader reader) { string val = reader[0].ToString(); return(val); }); if ("0".Equals(result)) { return(false); } else { return(true); } }
public bool insert(string person_id, string parent_id) { //private string sql_insert = "INSERT INTO " + __TABLE_NAME__ + " VALUES ( " + __SEQUENCE_NAME__ + ".nextval, TO_CHAR( SYSDATE, 'YYYYMMDDHH24MISS'), '{0}', TO_CHAR( SYSDATE, 'YYYYMMDDHH24MISS'), '{0}', '{1}', '{2}', '{3}', '{4}', 'S', '{5}' )"; // insert 를 해주는 것인데.. // 일단은 최소한의 값으로 값을 insert 해주면 된다.. ( row ) // 그 이후 _update 를 호출 하자.. // 자아.. 일단.. insert, update 시에는 FIXED COLUMN 항목들에 대해서는 별도로 처리를 해줄수 있도록 하자.. string sql_object_id = "SELECT " + __SEQUENCE_NAME__ + ".NEXTVAL FROM DUAL"; // 자아.. 사실은.. INSERT 에서 NEXTVAL 을 여러개를 써도 하나로 처리가 된다.. // 하지만.. INSERT 한 이후에 UPDATE를 해줘야 하는데.. 어차피 OBJECT_ID 를 알아야 하기 때문에.. // 그냥 따로 빼서 사용하도록 하자.. // 최초로 만드는 것이기 때문에 OBJECT_ID 와 MASTER_ID 는 동일.. // VERSION 은 0 으로 설정이 된다.. // owner에 대해서는 조금 생각을 해줘야 할것 같기는 한데.. // 일단은.. 나중에 팀코드를 넣어주어야 할것 같기도 하다.. string sql_insert = "INSERT INTO " + __TABLE_NAME__ + " ( OBJECT_ID, CREATE_DATE, CREATOR_ID, UPDATE_DATE, UPDATOR_ID, MASTER_ID, VERSION, STATUS ) VALUES ( '{1}',TO_CHAR( SYSDATE, 'YYYYMMDDHH24MISS'), '{0}',TO_CHAR( SYSDATE, 'YYYYMMDDHH24MISS'), '{0}', '{1}', 0, 'W' )"; OraDB DB = new OraDB(); string object_id = DB.GetQueryResult <string>(sql_object_id, delegate(OracleDataReader reader) { string val = reader[0].ToString(); return(val); }); if (object_id != null && !"".Equals(object_id)) { // 일단은 신규 object_id 를 가져왔으면.. string sql = string.Format(sql_insert, person_id, object_id); DB.Execute(sql); COLUMNS["CATE_PCODE"] = parent_id; this.OBJECT_ID = object_id; // 자아.. 일단 값을 넣고.. // 마지막으로 실제 업데이트.. _update(person_id); } DB.Close(); return(true); }
public bool update(string person_id) { // update..... // 자아.. UPDATE를 해주자.. // UPDATE는 INSERT와 유사하다.. // 하나의 ROW를 만들어 주고.. ( 물론 이때 MASTER_ID만 동일.. VERSION등이 변경. .) // OBJECT_ID를 얻고.. // 신규로 만들어 진놈에 _update를 호출한다.. string sql_object_id = "SELECT " + __SEQUENCE_NAME__ + ".NEXTVAL FROM DUAL"; // 자아.. 똑같아.. 일단은 신규 ID를 가져와.. string column_str = ""; for (int i = 0; i < COLUMN_NAME.Length; i++) { string _name = COLUMN_NAME[i]; if (FIXED_COLUMNS.Contains(_name)) { continue; } column_str += "," + _name; } string sql_update = "INSERT INTO " + __TABLE_NAME__ + " ( OBJECT_ID, CREATE_DATE, CREATOR_ID, UPDATE_DATE, UPDATOR_ID, MASTER_ID, VERSION, STATUS " + column_str + " ) " + " SELECT '{2}' OBJECT_ID, CREATE_DATE, CREATOR_ID, TO_CHAR( SYSDATE, 'YYYYMMDDHH24MISS') UPDATE_DATE , " + " '{0}' UPDATOR_ID, MASTER_ID, VERSION+1 VERSION, STATUS " + column_str + " FROM " + __TABLE_NAME__ + " " + " WHERE OBJECT_ID = (SELECT MAX(OBJECT_ID) FROM " + __TABLE_NAME__ + " WHERE MASTER_ID IN ( " + " SELECT MASTER_ID FROM " + __TABLE_NAME__ + " WHERE OBJECT_ID = '{1}' ) )"; // 자아.. SQL설명.. // 신규로 ROW를 하나 만드는 것이다.. OraDB DB = new OraDB(); string ori_object_id = this.OBJECT_ID; // 일단 예전것.. string object_id = DB.GetQueryResult <string>(sql_object_id, delegate(OracleDataReader reader) { string val = reader[0].ToString(); return(val); }); if (object_id != null && !"".Equals(object_id)) { // 일단은 신규 object_id 를 가져왔으면.. string sql = string.Format(sql_update, person_id, ori_object_id, object_id); DB.Execute(sql); this.OBJECT_ID = object_id; // 자아.. 일단 값을 넣고.. // 마지막으로 실제 업데이트.. _update(person_id); } DB.Close(); return(true); }
public string getJson() { OraDB DB = new OraDB(); string res = null; string sql = "select OBJECT_ID, CODE, NAME from " + __TABLE_NAME__ + " order by code"; if ("TB_DEPT".Equals(__TABLE_NAME__)) { // 부서 가져올때는 별도로.. sql = "select OBJECT_ID, DEPT_CODE, DEPT_NAME from TB_DEPT order by DEPT_NAME"; } if ("TB_PERSON".Equals(__TABLE_NAME__)) { sql = "SELECT OBJECT_ID, USER_ID, PERSON_NAME || ' ' || POS_NAME AS NAME, DEPT_CODE FROM TB_PERSON WHERE STATUS = 'Y'"; string _object_id = DB.GetQueryResult <string>(sql, delegate(OracleDataReader reader) { string o = reader[0].ToString(); string code = reader[1].ToString(); string name = reader[2].ToString(); string dept = reader[3].ToString(); if (res == null) { res = ""; } else { res += ","; } res += "{'value':'" + code + "','view':'" + name + "','filter':'" + dept + "' }"; return(o); }); return(res); } string object_id = DB.GetQueryResult <string>(sql, delegate(OracleDataReader reader) { string o = reader[0].ToString(); string code = reader[1].ToString(); string name = reader[2].ToString(); if (res == null) { res = ""; } else { res += ","; } res += "{'value':'" + code + "','view':'" + name + "' }"; return(o); }); return(res); }