// Version: 2019.4.4 10:22:45 // File: T_EQP_DATADBAX.cpp #include #include "T_EQP_DATADBAX.h" #include "T_EQP_DATA.h" #define NORECORD 100 using namespace log4cplus; extern iDA::Connection cn; extern char sqlErrMsg[4000]; #define DB_EXECUTE() try{ cmd.Execute();}catch( iDA::Exception &e){ dbSqlCode=-1;strcpy( sqlErrMsg,e.ErrMsg().c_str());return sqlErrMsg;} #define DB_UPDEXECUTE() try{ updatecmd.Execute();}catch( iDA::Exception &e){ dbSqlCode=-1;strcpy( sqlErrMsg,e.ErrMsg().c_str());return sqlErrMsg;} #define DB_RDEXECUTE() try{ readcmd.Execute();}catch( iDA::Exception &e){ dbSqlCode=-1;strcpy( sqlErrMsg,e.ErrMsg().c_str());return sqlErrMsg;} #define DB_INSEXECUTE() try{ insertcmd.Execute();}catch( iDA::Exception &e){ dbSqlCode=-1;strcpy( sqlErrMsg,e.ErrMsg().c_str());return sqlErrMsg;} #define DB_FETCH() try{ if( !readcmd.FetchNext()){ dbSqlCode = NORECORD;strcpy( sqlErrMsg, "No record found");return sqlErrMsg;}}catch( iDA::Exception &e){ dbSqlCode=-1;strcpy( sqlErrMsg,e.ErrMsg().c_str());return sqlErrMsg;} #define DB_UPDAFFECTED() if( updatecmd.RowsAffected() <= 0){ strcpy( sqlErrMsg, "No record affected");return sqlErrMsg;} // // Declare DB Hostvariables // #define OPENED 1 #define CLOSED 2 /* ****************************************************************************** */ /* */ /* define DB */ /* Hostvariables */ /* */ /* ****************************************************************************** */ static char db_EqpId[20+1]; static char db_EqpType[20+1]; static char db_EqpRule[20+1]; static char db_EqpName[60+1]; static short db_EqpNameZi; static char db_Factory[20+1]; static short db_FactoryZi; static char db_UnitNo[60+1]; static short db_UnitNoZi; static char db_Status[60+1]; static short db_StatusZi; static char db_DateIn[27]; static short db_DateInZi; static char db_DateOn[27]; static short db_DateOnZi; static char db_DateOff[27]; static short db_DateOffZi; static char db_toc[27]; static short db_tocZi; static char db_tom[27]; static short db_tomZi; static char db_mop[121]; static short db_mopZi; static char db_mou[31]; static short db_mouZi; static long rowCnt; // Host arguments for Primary key static char k_db_EqpId[20+1]; static char k_db_EqpType[20+1]; static char k_db_EqpRule[20+1]; // // constructor // T_EQP_DATADBAX::T_EQP_DATADBAX() { } // // destructor // T_EQP_DATADBAX::~T_EQP_DATADBAX() { } char* T_EQP_DATADBAX::execute(const char* sql , long* count ){ dbSqlCode = 0; cmd.SetConnection( &cn); cmd.SetCommandText( sql); DB_EXECUTE(); if( count != NULL) { *count = cmd.RowsAffected(); } return ( NULL ); } char* T_EQP_DATADBAX::dbCommit(){ dbSqlCode = 0; try{ cn.Commit(); }catch( iDA::Exception &e) { dbSqlCode = -1; strcpy( sqlErrMsg,e.ErrMsg().c_str()); return sqlErrMsg; } return ( NULL ); } char* T_EQP_DATADBAX::dbRollback(){ dbSqlCode = 0; try{ cn.Rollback(); }catch( iDA::Exception &e) { dbSqlCode = -1; strcpy( sqlErrMsg,e.ErrMsg().c_str()); return sqlErrMsg; } return ( NULL ); } // // private methode copyDB2Attribute // void T_EQP_DATADBAX::copyDB2Attribute( T_EQP_DATA &dbObj ){ dbObj.set_EqpId((char*)db_EqpId); dbObj.set_EqpType((char*)db_EqpType); dbObj.set_EqpRule((char*)db_EqpRule); dbObj.set_EqpName((char*)db_EqpName); dbObj.set_EqpNameZi((short)db_EqpNameZi); dbObj.set_Factory((char*)db_Factory); dbObj.set_FactoryZi((short)db_FactoryZi); dbObj.set_UnitNo((char*)db_UnitNo); dbObj.set_UnitNoZi((short)db_UnitNoZi); dbObj.set_Status((char*)db_Status); dbObj.set_StatusZi((short)db_StatusZi); dbObj.set_DateIn((char*)db_DateIn); dbObj.set_DateInZi((short)db_DateInZi); dbObj.set_DateOn((char*)db_DateOn); dbObj.set_DateOnZi((short)db_DateOnZi); dbObj.set_DateOff((char*)db_DateOff); dbObj.set_DateOffZi((short)db_DateOffZi); dbObj.set_toc((char*)db_toc); dbObj.set_tocZi((short)db_tocZi ); dbObj.set_tom((char*)db_tom); dbObj.set_tomZi((short)db_tomZi ); dbObj.set_mop((char*)db_mop); dbObj.set_mopZi((short)db_mopZi ); dbObj.set_mou((char*)db_mou); dbObj.set_mouZi((short)db_mouZi ); } // end of methode // // private methode copyAttribute2DB // void T_EQP_DATADBAX::copyAttribute2DB( T_EQP_DATA &dbObj ){ if (strlen(dbObj.EqpId()) < sizeof(db_EqpId)){ strncpy ((char*)db_EqpId, dbObj.EqpId(), sizeof(db_EqpId)); } if (strlen(dbObj.EqpType()) < sizeof(db_EqpType)){ strncpy ((char*)db_EqpType, dbObj.EqpType(), sizeof(db_EqpType)); } if (strlen(dbObj.EqpRule()) < sizeof(db_EqpRule)){ strncpy ((char*)db_EqpRule, dbObj.EqpRule(), sizeof(db_EqpRule)); } if (strlen(dbObj.EqpName()) < sizeof(db_EqpName)){ strncpy ((char*)db_EqpName, dbObj.EqpName(), sizeof(db_EqpName)); } db_EqpNameZi = dbObj.EqpNameZi(); if (strlen(dbObj.Factory()) < sizeof(db_Factory)){ strncpy ((char*)db_Factory, dbObj.Factory(), sizeof(db_Factory)); } db_FactoryZi = dbObj.FactoryZi(); if (strlen(dbObj.UnitNo()) < sizeof(db_UnitNo)){ strncpy ((char*)db_UnitNo, dbObj.UnitNo(), sizeof(db_UnitNo)); } db_UnitNoZi = dbObj.UnitNoZi(); if (strlen(dbObj.Status()) < sizeof(db_Status)){ strncpy ((char*)db_Status, dbObj.Status(), sizeof(db_Status)); } db_StatusZi = dbObj.StatusZi(); if (strlen(dbObj.DateIn()) < sizeof(db_DateIn)){ strncpy ((char*)db_DateIn, dbObj.DateIn(), sizeof(db_DateIn)); } db_DateInZi = dbObj.DateInZi(); if (strlen(dbObj.DateOn()) < sizeof(db_DateOn)){ strncpy ((char*)db_DateOn, dbObj.DateOn(), sizeof(db_DateOn)); } db_DateOnZi = dbObj.DateOnZi(); if (strlen(dbObj.DateOff()) < sizeof(db_DateOff)){ strncpy ((char*)db_DateOff, dbObj.DateOff(), sizeof(db_DateOff)); } db_DateOffZi = dbObj.DateOffZi(); } // end of methode // // private methode copyKey2Host // void T_EQP_DATADBAX::copyKey2Host( T_EQP_DATA &dbObj ){ if (strlen(dbObj.k_EqpId()) < sizeof(k_db_EqpId)){ strncpy ((char*)k_db_EqpId, dbObj.k_EqpId(), sizeof(k_db_EqpId)); } if (strlen(dbObj.k_EqpType()) < sizeof(k_db_EqpType)){ strncpy ((char*)k_db_EqpType, dbObj.k_EqpType(), sizeof(k_db_EqpType)); } if (strlen(dbObj.k_EqpRule()) < sizeof(k_db_EqpRule)){ strncpy ((char*)k_db_EqpRule, dbObj.k_EqpRule(), sizeof(k_db_EqpRule)); } } // end of methode // // private methode copyHost2Key // void T_EQP_DATADBAX::copyHost2Key( T_EQP_DATA &dbObj ){ dbObj.set_k_EqpId((char*)db_EqpId); dbObj.set_k_EqpType((char*)db_EqpType); dbObj.set_k_EqpRule((char*)db_EqpRule); } // end of methode // // public methode readDB // char* T_EQP_DATADBAX::readDB(T_EQP_DATA &dbObj ){ copyKey2Host( dbObj ); ostringstream ostr; dbSqlCode = 0; ostr << "SELECT "; // all columns ostr << "EqpId"; ostr << ",EqpType"; ostr << ",EqpRule"; ostr << ",EqpName"; ostr << ",Factory"; ostr << ",UnitNo"; ostr << ",Status"; ostr << ",TO_CHAR(DateIn, 'YYYYMMDDHH24MISS')"; ostr << ",TO_CHAR(DateOn, 'YYYYMMDDHH24MISS')"; ostr << ",TO_CHAR(DateOff, 'YYYYMMDDHH24MISS')"; ostr << ",TO_CHAR( toc , 'YYYYMMDDHH24MISS')"; ostr << ",TO_CHAR( tom , 'YYYYMMDDHH24MISS')"; ostr << ",mop"; ostr << ",mou"; ostr << " FROM T_EQP_DATA WHERE "; // where ostr << "EqpId = '" << k_db_EqpId << "'"; ostr << " AND EqpType = '" << k_db_EqpType << "'"; ostr << " AND EqpRule = '" << k_db_EqpRule << "'"; readcmd.SetConnection(&cn); readcmd.SetCommandText( ostr.str()); DB_RDEXECUTE(); DB_FETCH(); // Primary Keys strncpy( db_EqpId, readcmd.Field(1).AsString().c_str(), sizeof( db_EqpId)); // Primary Keys strncpy( db_EqpType, readcmd.Field(2).AsString().c_str(), sizeof( db_EqpType)); // Primary Keys strncpy( db_EqpRule, readcmd.Field(3).AsString().c_str(), sizeof( db_EqpRule)); // Normal columns // EqpName if( readcmd.Field(4).IsNull() == false) { db_EqpNameZi = 0; strncpy( db_EqpName, readcmd.Field(4).AsString().c_str(), sizeof( db_EqpName)); } else { db_EqpNameZi = -1; memset( db_EqpName, 0x00, sizeof( db_EqpName)); } // Normal columns // Factory if( readcmd.Field(5).IsNull() == false) { db_FactoryZi = 0; strncpy( db_Factory, readcmd.Field(5).AsString().c_str(), sizeof( db_Factory)); } else { db_FactoryZi = -1; memset( db_Factory, 0x00, sizeof( db_Factory)); } // Normal columns // UnitNo if( readcmd.Field(6).IsNull() == false) { db_UnitNoZi = 0; strncpy( db_UnitNo, readcmd.Field(6).AsString().c_str(), sizeof( db_UnitNo)); } else { db_UnitNoZi = -1; memset( db_UnitNo, 0x00, sizeof( db_UnitNo)); } // Normal columns // Status if( readcmd.Field(7).IsNull() == false) { db_StatusZi = 0; strncpy( db_Status, readcmd.Field(7).AsString().c_str(), sizeof( db_Status)); } else { db_StatusZi = -1; memset( db_Status, 0x00, sizeof( db_Status)); } // Normal columns // DateIn if( readcmd.Field(8).IsNull() == false) { db_DateInZi = 0; strncpy( db_DateIn, readcmd.Field(8).AsString().c_str(), sizeof( db_DateIn)); } else { db_DateInZi = -1; memset( db_DateIn, 0x00, sizeof( db_DateIn)); } // Normal columns // DateOn if( readcmd.Field(9).IsNull() == false) { db_DateOnZi = 0; strncpy( db_DateOn, readcmd.Field(9).AsString().c_str(), sizeof( db_DateOn)); } else { db_DateOnZi = -1; memset( db_DateOn, 0x00, sizeof( db_DateOn)); } // Normal columns // DateOff if( readcmd.Field(10).IsNull() == false) { db_DateOffZi = 0; strncpy( db_DateOff, readcmd.Field(10).AsString().c_str(), sizeof( db_DateOff)); } else { db_DateOffZi = -1; memset( db_DateOff, 0x00, sizeof( db_DateOff)); } // toc if( readcmd.Field(11).IsNull() == false) { db_tocZi = 0; strncpy( db_toc, readcmd.Field(11).AsString().c_str(), sizeof( db_toc)); } else { db_tocZi = -1; memset( db_toc, 0x00, sizeof( db_toc)); } // tom if( readcmd.Field(12).IsNull() == false) { db_tomZi = 0; strncpy( db_tom, readcmd.Field(12).AsString().c_str(), sizeof( db_tom)); } else { db_tomZi = -1; memset( db_tom, 0x00, sizeof( db_tom)); } // mop if( readcmd.Field(13).IsNull() == false) { db_mopZi = 0; strncpy( db_mop, readcmd.Field(13).AsString().c_str(), sizeof( db_mop)); } else { db_mopZi = -1; memset( db_mop, 0x00, sizeof( db_mop)); } // mou if( readcmd.Field(14).IsNull() == false) { db_mouZi = 0; strncpy( db_mou, readcmd.Field(14).AsString().c_str(), sizeof( db_mou)); } else { db_mouZi = -1; memset( db_mou, 0x00, sizeof( db_mou)); } // copy host variables into Class attributes copyDB2Attribute( dbObj ); return ( NULL ); } // end of methode // // public methode updateDB // char* T_EQP_DATADBAX::updateDB(T_EQP_DATA &dbObj ){ copyKey2Host( dbObj ); copyAttribute2DB( dbObj ); dbSqlCode = 0; ostringstream ostr; ostr << "UPDATE T_EQP_DATA SET "; // Material Keys & Primary Keys ostr << "EqpId='" << db_EqpId << "'"; ostr << ", EqpType='" << db_EqpType << "'"; ostr << ", EqpRule='" << db_EqpRule << "'"; // Normal column if( db_EqpNameZi != -1) ostr << ", EqpName = '" << db_EqpName << "'"; else ostr<<",EqpName = NULL"; if( db_FactoryZi != -1) ostr << ", Factory = '" << db_Factory << "'"; else ostr<<",Factory = NULL"; if( db_UnitNoZi != -1) ostr << ", UnitNo = '" << db_UnitNo << "'"; else ostr<<",UnitNo = NULL"; if( db_StatusZi != -1) ostr << ", Status = '" << db_Status << "'"; else ostr<<",Status = NULL"; if( db_DateInZi != -1) ostr << ", DateIn = TO_DATE('" << db_DateIn << "','YYYYMMDDHH24MISS')"; else ostr<<",DateIn = NULL"; if( db_DateOnZi != -1) ostr << ", DateOn = TO_DATE('" << db_DateOn << "','YYYYMMDDHH24MISS')"; else ostr<<",DateOn = NULL"; if( db_DateOffZi != -1) ostr << ", DateOff = TO_DATE('" << db_DateOff << "','YYYYMMDDHH24MISS')"; else ostr<<",DateOff = NULL"; // where ostr << " WHERE "; ostr << "EqpId = '" << db_EqpId << "'"; ostr << " AND EqpType = '" << db_EqpType << "'"; ostr << " AND EqpRule = '" << db_EqpRule << "'"; updatecmd.SetConnection(&cn); updatecmd.SetCommandText( ostr.str()); DB_UPDEXECUTE(); DB_UPDAFFECTED(); return ( NULL ); } // end of methode // // public methode insertDB // char* T_EQP_DATADBAX::insertDB(T_EQP_DATA &dbObj ){ copyAttribute2DB( dbObj ); dbSqlCode = 0; m_sql = "INSERT INTO T_EQP_DATA VALUES( :1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14)"; insertcmd.SetConnection(&cn); insertcmd.SetCommandText( m_sql); // Primary columns insertcmd.Param(1) = ( char *)db_EqpId; // Primary columns insertcmd.Param(2) = ( char *)db_EqpType; // Primary columns insertcmd.Param(3) = ( char *)db_EqpRule; // Normal columns if( db_EqpNameZi != -1) insertcmd.Param(4) = ( char *)db_EqpName; else insertcmd.Param(4).SetAsNull(); // Normal columns if( db_FactoryZi != -1) insertcmd.Param(5) = ( char *)db_Factory; else insertcmd.Param(5).SetAsNull(); // Normal columns if( db_UnitNoZi != -1) insertcmd.Param(6) = ( char *)db_UnitNo; else insertcmd.Param(6).SetAsNull(); // Normal columns if( db_StatusZi != -1) insertcmd.Param(7) = ( char *)db_Status; else insertcmd.Param(7).SetAsNull(); // Normal columns if( db_DateInZi != -1) insertcmd.Param(8) = DateTime( db_DateIn); else insertcmd.Param(8).SetAsNull(); // Normal columns if( db_DateOnZi != -1) insertcmd.Param(9) = DateTime( db_DateOn); else insertcmd.Param(9).SetAsNull(); // Normal columns if( db_DateOffZi != -1) insertcmd.Param(10) = DateTime( db_DateOff); else insertcmd.Param(10).SetAsNull(); //TOCTOMMOPMOU insertcmd.Param(11).SetAsNull(); insertcmd.Param(12).SetAsNull(); insertcmd.Param(13).SetAsNull(); insertcmd.Param(14).SetAsNull(); DB_INSEXECUTE(); return ( NULL ); } // end of methode // // public methode deleteDB // char* T_EQP_DATADBAX::deleteDB(T_EQP_DATA &dbObj ){ ostringstream ostr; dbSqlCode = 0; copyKey2Host( dbObj ); ostr << "DELETE FROM T_EQP_DATA WHERE "; ostr << "EqpId = '" << db_EqpId << "'"; ostr << " AND EqpType = '" << db_EqpType << "'"; ostr << " AND EqpRule = '" << db_EqpRule << "'"; cmd.SetConnection( &cn); cmd.SetCommandText( ostr.str()); DB_EXECUTE(); return ( NULL ); } // end of methode // // public methode deleteDB delete in case of a where clause // char* T_EQP_DATADBAX::deleteDB(const char* where , long* count){ dbSqlCode = 0; *(count) = -1L; m_sql = "DELETE FROM T_EQP_DATA "; if ( where != (char*)NULL ) { m_sql.append( where ); } cmd.SetConnection( &cn); cmd.SetCommandText( m_sql); DB_EXECUTE(); if( count != NULL){ *count = cmd.RowsAffected(); } return ( NULL ); } // end of methode // // public methode openSetDB // char* T_EQP_DATADBAX::openSetDB(const char* where , const char* order){ dbSqlCode = 0; m_sql = "SELECT EqpId, EqpType, EqpRule, EqpName, Factory, UnitNo, Status, TO_CHAR(DateIn, 'YYYYMMDDHH24MISS'), TO_CHAR(DateOn, 'YYYYMMDDHH24MISS'), TO_CHAR(DateOff, 'YYYYMMDDHH24MISS'), TO_CHAR( toc , 'YYYYMMDDHH24MISS'), TO_CHAR( tom , 'YYYYMMDDHH24MISS'), mop, mou FROM T_EQP_DATA "; if ( where != (char*)NULL ) { m_sql.append( where); m_sql.append( " "); } if (order != (char*)NULL){ m_sql.append( order); } readcmd.SetConnection(&cn); readcmd.SetCommandText( m_sql); DB_RDEXECUTE(); return ( NULL ); } // end of methode // // public methode getSetDB // char* T_EQP_DATADBAX::getSetDB( T_EQP_DATA &dbObj ){ dbSqlCode = 0; DB_FETCH(); // Primary columns strncpy( db_EqpId, readcmd.Field(1).AsString().c_str(), sizeof( db_EqpId)); // Primary columns strncpy( db_EqpType, readcmd.Field(2).AsString().c_str(), sizeof( db_EqpType)); // Primary columns strncpy( db_EqpRule, readcmd.Field(3).AsString().c_str(), sizeof( db_EqpRule)); // Normal columns // EqpName if( readcmd.Field(4).IsNull() == false) { db_EqpNameZi = 0; strncpy( db_EqpName, readcmd.Field(4).AsString().c_str(), sizeof( db_EqpName)); } else { db_EqpNameZi = -1; memset( db_EqpName, 0x00, sizeof( db_EqpName)); } // Normal columns // Factory if( readcmd.Field(5).IsNull() == false) { db_FactoryZi = 0; strncpy( db_Factory, readcmd.Field(5).AsString().c_str(), sizeof( db_Factory)); } else { db_FactoryZi = -1; memset( db_Factory, 0x00, sizeof( db_Factory)); } // Normal columns // UnitNo if( readcmd.Field(6).IsNull() == false) { db_UnitNoZi = 0; strncpy( db_UnitNo, readcmd.Field(6).AsString().c_str(), sizeof( db_UnitNo)); } else { db_UnitNoZi = -1; memset( db_UnitNo, 0x00, sizeof( db_UnitNo)); } // Normal columns // Status if( readcmd.Field(7).IsNull() == false) { db_StatusZi = 0; strncpy( db_Status, readcmd.Field(7).AsString().c_str(), sizeof( db_Status)); } else { db_StatusZi = -1; memset( db_Status, 0x00, sizeof( db_Status)); } // Normal columns // DateIn if( readcmd.Field(8).IsNull() == false) { db_DateInZi = 0; strncpy( db_DateIn, readcmd.Field(8).AsString().c_str(), sizeof( db_DateIn)); } else { db_DateInZi = -1; memset( db_DateIn, 0x00, sizeof( db_DateIn)); } // Normal columns // DateOn if( readcmd.Field(9).IsNull() == false) { db_DateOnZi = 0; strncpy( db_DateOn, readcmd.Field(9).AsString().c_str(), sizeof( db_DateOn)); } else { db_DateOnZi = -1; memset( db_DateOn, 0x00, sizeof( db_DateOn)); } // Normal columns // DateOff if( readcmd.Field(10).IsNull() == false) { db_DateOffZi = 0; strncpy( db_DateOff, readcmd.Field(10).AsString().c_str(), sizeof( db_DateOff)); } else { db_DateOffZi = -1; memset( db_DateOff, 0x00, sizeof( db_DateOff)); } // toc if( readcmd.Field(11).IsNull() == false) { db_tocZi = 0; strncpy( db_toc, readcmd.Field(11).AsString().c_str(), sizeof( db_toc)); } else { db_tocZi = -1; memset( db_toc, 0x00, sizeof( db_toc)); } // tom if( readcmd.Field(12).IsNull() == false) { db_tomZi = 0; strncpy( db_tom, readcmd.Field(12).AsString().c_str(), sizeof( db_tom)); } else { db_tomZi = -1; memset( db_tom, 0x00, sizeof( db_tom)); } // mop if( readcmd.Field(13).IsNull() == false) { db_mopZi = 0; strncpy( db_mop, readcmd.Field(13).AsString().c_str(), sizeof( db_mop)); } else { db_mopZi = -1; memset( db_mop, 0x00, sizeof( db_mop)); } // mou if( readcmd.Field(14).IsNull() == false) { db_mouZi = 0; strncpy( db_mou, readcmd.Field(14).AsString().c_str(), sizeof( db_mou)); } else { db_mouZi = -1; memset( db_mou, 0x00, sizeof( db_mou)); } copyDB2Attribute( dbObj ); copyHost2Key( dbObj ); return ( NULL ); } // end of methode // // public methode closeSetDB // char* T_EQP_DATADBAX::closeSetDB(){ dbSqlCode = 0; return ( NULL ); } // end of methode // // public methode countDB // char* T_EQP_DATADBAX::countDB(const char* where , long* count){ dbSqlCode = 0; *(count) = -1L; m_sql = "SELECT count(*) FROM T_EQP_DATA "; if ( where != (char*)NULL ) { m_sql.append( where); } readcmd.SetConnection(&cn); readcmd.SetCommandText( m_sql); DB_RDEXECUTE(); DB_FETCH(); *count = ( long)readcmd.Field(1).AsLong(); return ( NULL ); } // end of methode