////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //생성 : //추가 : //목적 : 테이블 데이터 삽입 //설명 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// private bool HLSetTableDataInsert(string strTableName, DataTable objDataTable) { bool bReturn = false; do { try { string strQuery = ""; // 트랜잭션 시작 SQLiteTransaction objTransaction = m_objSQLite.HLBeginTransaction(); // INSERT 해야 하는 데이터 테이블 레코드 수만큼 for (int iLoopRow = 0; iLoopRow < objDataTable.Rows.Count; iLoopRow++) { string strValues = ""; DataRow objDataRow = objDataTable.Rows[iLoopRow]; strQuery = string.Format("insert into {0} values", strTableName); // 테이블에 정의된 스키마 타입 개수만큼 for (int iLoopSchema = 0; iLoopSchema < m_strTableSchemaType.Length; iLoopSchema++) { // 타입 검사 if ("INTEGER" == m_strTableSchemaType[iLoopSchema]) { strValues += string.Format("{0}", Convert.ToInt32(objDataRow[iLoopSchema])); } else if (true == m_strTableSchemaType[iLoopSchema].Contains("VARCHAR")) { strValues += string.Format("'{0}'", objDataRow[iLoopSchema].ToString()); } else if ("REAL" == m_strTableSchemaType[iLoopSchema] || "DOUBLE" == m_strTableSchemaType[iLoopSchema]) { strValues += string.Format("{0}", Convert.ToDouble(objDataRow[iLoopSchema])); } if (iLoopSchema != m_strTableSchemaType.Length - 1) { strValues += ","; } } // INSERT 쿼리문 strQuery = string.Format("{0} ({1})", strQuery, strValues); // 쿼리문 수행 CErrorReturn objReturn = m_objSQLite.HLExecute(strQuery); if (true == objReturn.m_bError) { Trace.WriteLine(objReturn.m_strErrorMessage); } } // 문제 없으면 트랜잭션 커밋 m_objSQLite.HLCommit(objTransaction); } catch (Exception ex) { Trace.WriteLine(ex.Message); } bReturn = true; } while(false); return(bReturn); }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //생성 : //추가 : //목적 : 히스토리 삭제 쿼리 날려줌 //설명 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// private void SetDeleteHistory(Object state) { var pDocument = CDocument.GetDocument; CConfig.CDatabaseParameter objDatabaseParameter = pDocument.m_objConfig.GetDatabaseParameter(); CManagerTable objHistoryAlign = m_objProcessDatabase.m_objProcessDatabaseHistory.m_objManagerTableHistoryAlign; CManagerTable objHistoryInspection = m_objProcessDatabase.m_objProcessDatabaseHistory.m_objManagerTableHistoryInspection; // 트랜잭션 시작 lock ( m_objSQLite ) { var objTransaction = m_objSQLite.HLBeginTransaction(); // 특정 기간 이전 히스토리를 삭제하는 쿼리 SetDeleteHistory(objHistoryAlign, ( int )CDatabaseDefine.enumHistoryAlign.DATE, pDocument.m_objConfig.GetSystemParameter().iPeriodDatabase); // 커밋 m_objSQLite.HLCommit(objTransaction); } }