Exemplo n.º 1
0
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //생성 :
        //추가 :
        //목적 : 테이블 데이터 삽입
        //설명 :
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        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);
            }
        }