//-- Version: 2018.7.19 10:29:28 //////////////////////////////////////////////////////////////////////// #include "Ed.h" Ed::Ed() : dbAccess (true), dbMessage (NULL) { ptrEdLogEnt = NULL; ptrEdOrdEnt = NULL; ptrEdPhyEnt = NULL; emptyObjects(); } Ed::~Ed() { if(ptrEdLogEnt != NULL) delete ptrEdLogEnt; if(ptrEdOrdEnt != NULL) delete ptrEdOrdEnt; if(ptrEdPhyEnt != NULL) delete ptrEdPhyEnt; } // Parameters of table:EdLogEnt // muCode1 // arg2 = source = 所有者 // Parameters of table:EdOrdEnt // muCode3 // arg4 = source = 所有者 // Parameters of table:EdPhyEnt // muCode5 // arg6 = source Ed::Ed( MU_CODE muCode1 ,const char* arg2 , MU_CODE muCode3 ,const char* arg4 , MU_CODE muCode5 ,const char* arg6 ) { ptrEdLogEnt = NULL; ptrEdOrdEnt = NULL; ptrEdPhyEnt = NULL; dbAccess = true; dbMessage = NULL; ptrEdLogEnt = new T_PDI_LO( muCode1 , arg2); if ( ptrEdLogEnt->dbAccess == false ) { dbAccess = false; dbMessage = ptrEdLogEnt->dbMessage; emptyObjects(); return; } ptrEdOrdEnt = new T_PDI_OR( muCode3 , arg4); if ( ptrEdOrdEnt->dbAccess == false ) { dbAccess = false; dbMessage = ptrEdOrdEnt->dbMessage; emptyObjects(); return; } ptrEdPhyEnt = new T_PDI_PH( muCode5 , arg6); if ( ptrEdPhyEnt->dbAccess == false ) { dbAccess = false; dbMessage = ptrEdPhyEnt->dbMessage; emptyObjects(); return; } } // Parameters of table:EdLogEnt // muCode1 // arg2 = source = 所有者 // Parameters of table:EdOrdEnt // muCode3 // arg4 = source = 所有者 // Parameters of table:EdPhyEnt // muCode5 // arg6 = source void Ed::initInsertKeys( MU_CODE muCode1 ,const char* arg2 , MU_CODE muCode3 ,const char* arg4 , MU_CODE muCode5 ,const char* arg6 ) { setPrimKey( muCode1 , arg2 , muCode3 , arg4 , muCode5 , arg6 ); ptrEdLogEnt->initInsertKeys( muCode1.actual.muId , muCode1.actual.muCreator , muCode1.actual.musId , arg2); ptrEdOrdEnt->initInsertKeys( muCode3.actual.muId , muCode3.actual.muCreator , muCode3.actual.musId , arg4); ptrEdPhyEnt->initInsertKeys( muCode5.actual.muId , muCode5.actual.muCreator , muCode5.actual.musId , arg6); } // Parameters of table:EdLogEnt // muCode1 // arg2 = source = 所有者 // Parameters of table:EdOrdEnt // muCode3 // arg4 = source = 所有者 // Parameters of table:EdPhyEnt // muCode5 // arg6 = source void Ed::setPrimKey( MU_CODE muCode1 ,const char* arg2 , MU_CODE muCode3 ,const char* arg4 , MU_CODE muCode5 ,const char* arg6 ) { ptrEdLogEnt->setPrimKey( muCode1.actual.muId , muCode1.actual.muCreator , muCode1.actual.musId , arg2); ptrEdOrdEnt->setPrimKey( muCode3.actual.muId , muCode3.actual.muCreator , muCode3.actual.musId , arg4); ptrEdPhyEnt->setPrimKey( muCode5.actual.muId , muCode5.actual.muCreator , muCode5.actual.musId , arg6); } // muCode1 // arg2 = source = 所有者 Ed::Ed( MU_CODE muCode1 ,const char* arg2 ) { ptrEdLogEnt = NULL; ptrEdOrdEnt = NULL; ptrEdPhyEnt = NULL; dbAccess = true; dbMessage = NULL; MatStruct material( muCode1 ); if ( !material.dbAccess ){ dbAccess = false; if ( strlen ( material.dbMessage ) < 200 ) { strncpy( messageBuffer , material.dbMessage,sizeof(messageBuffer)); } else { messageBuffer[0] = '\0'; } dbMessage = messageBuffer; emptyObjects(); return; } dbAccess = true; if ( material.matUnits.actLogicalIndex == -1 ) { ptrEdLogEnt = new T_PDI_LO(material.matUnits.logMuCode[0] , arg2); if ( ptrEdLogEnt->dbAccess == false ) { dbAccess = false; dbMessage = ptrEdLogEnt->dbMessage; emptyObjects(); return; } } else { ptrEdLogEnt = new T_PDI_LO(material.matUnits.logMuCode[material.matUnits.actLogicalIndex] , arg2); if ( ptrEdLogEnt->dbAccess == false ) { dbAccess = false; dbMessage = ptrEdLogEnt->dbMessage; emptyObjects(); return; } } if ( material.matUnits.actOrderIndex == -1 ) { if ( material.matUnits.actLogicalIndex == -1 ) { ptrEdOrdEnt = new T_PDI_OR(material.matUnits.ordMuCode[0][0] , arg2); if ( ptrEdOrdEnt->dbAccess == false ) { dbAccess = false; dbMessage = ptrEdOrdEnt->dbMessage; emptyObjects(); return; } } else { ptrEdOrdEnt = new T_PDI_OR(material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][0] , arg2); if ( ptrEdOrdEnt->dbAccess == false ) { dbAccess = false; dbMessage = ptrEdOrdEnt->dbMessage; emptyObjects(); return; } } } else { ptrEdOrdEnt = new T_PDI_OR(material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][material.matUnits.actOrderIndex] , arg2); if ( ptrEdOrdEnt->dbAccess == false ) { dbAccess = false; dbMessage = ptrEdOrdEnt->dbMessage; emptyObjects(); return; } } ptrEdPhyEnt = new T_PDI_PH( material.matUnits.phyMuCode , arg2); if ( ptrEdPhyEnt->dbAccess == false ) { dbAccess = false; dbMessage = ptrEdPhyEnt->dbMessage; emptyObjects(); return; } } // muCode1 // arg2 = source = 所有者 void Ed::initInsertKeys( MU_CODE muCode1 ,const char* arg2 ) { setPrimKey( muCode1 , arg2 ); dbAccess = true; dbMessage = NULL; MatStruct material( muCode1 ); if ( !material.dbAccess ){ dbAccess = false; if ( strlen ( material.dbMessage ) < 200 ) { strncpy( messageBuffer , material.dbMessage,sizeof(messageBuffer)); } else { messageBuffer[0] = '\0'; } dbMessage = messageBuffer; return; } dbAccess = true; if ( material.matUnits.actLogicalIndex == -1 ) { ptrEdLogEnt->initInsertKeys( material.matUnits.logMuCode[0].actual.muId , material.matUnits.logMuCode[0].actual.muCreator , material.matUnits.logMuCode[0].actual.musId , arg2); } else { ptrEdLogEnt->initInsertKeys( material.matUnits.logMuCode[material.matUnits.actLogicalIndex].actual.muId , material.matUnits.logMuCode[material.matUnits.actLogicalIndex].actual.muCreator , material.matUnits.logMuCode[material.matUnits.actLogicalIndex].actual.musId , arg2); } if ( material.matUnits.actOrderIndex == -1 ) { if ( material.matUnits.actLogicalIndex == -1 ) { ptrEdOrdEnt->initInsertKeys( material.matUnits.ordMuCode[0][0].actual.muId , material.matUnits.ordMuCode[0][0].actual.muCreator , material.matUnits.ordMuCode[0][0].actual.musId , arg2); } else { ptrEdOrdEnt->initInsertKeys( material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][0].actual.muId , material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][0].actual.muCreator , material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][0].actual.musId , arg2); } } else { ptrEdOrdEnt->initInsertKeys( material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][material.matUnits.actOrderIndex].actual.muId , material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][material.matUnits.actOrderIndex].actual.muCreator , material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][material.matUnits.actOrderIndex].actual.musId , arg2); } ptrEdPhyEnt->initInsertKeys( material.matUnits.phyMuCode.actual.muId , material.matUnits.phyMuCode.actual.muCreator , material.matUnits.phyMuCode.actual.musId , arg2); } // muCode1 // arg2 = source = 所有者 void Ed::setPrimKey( MU_CODE muCode1 ,const char* arg2 ) { dbAccess = true; dbMessage = NULL; MatStruct material( muCode1 ); if ( !material.dbAccess ){ dbAccess = false; if ( strlen ( material.dbMessage ) < 200 ) { strncpy( messageBuffer , material.dbMessage,sizeof(messageBuffer)); } else { messageBuffer[0] = '\0'; } dbMessage = messageBuffer; return; } dbAccess = true; if ( material.matUnits.actLogicalIndex == -1 ) { ptrEdLogEnt->setPrimKey( material.matUnits.logMuCode[0].actual.muId , material.matUnits.logMuCode[0].actual.muCreator , material.matUnits.logMuCode[0].actual.musId , arg2); } else { ptrEdLogEnt->setPrimKey( material.matUnits.logMuCode[material.matUnits.actLogicalIndex].actual.muId , material.matUnits.logMuCode[material.matUnits.actLogicalIndex].actual.muCreator , material.matUnits.logMuCode[material.matUnits.actLogicalIndex].actual.musId , arg2); } if ( material.matUnits.actOrderIndex == -1 ) { if ( material.matUnits.actLogicalIndex == -1 ) { ptrEdOrdEnt->setPrimKey( material.matUnits.ordMuCode[0][0].actual.muId , material.matUnits.ordMuCode[0][0].actual.muCreator , material.matUnits.ordMuCode[0][0].actual.musId , arg2); } else { ptrEdOrdEnt->setPrimKey( material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][0].actual.muId , material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][0].actual.muCreator , material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][0].actual.musId , arg2); } } else { ptrEdOrdEnt->setPrimKey( material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][material.matUnits.actOrderIndex].actual.muId , material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][material.matUnits.actOrderIndex].actual.muCreator , material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][material.matUnits.actOrderIndex].actual.musId , arg2); } ptrEdPhyEnt->setPrimKey( material.matUnits.phyMuCode.actual.muId , material.matUnits.phyMuCode.actual.muCreator , material.matUnits.phyMuCode.actual.musId , arg2); } /////////////////////////////////////////////////// char* Ed::readDB() { if ( dbAccess == false) { return dbMessage; } if ( dbAccess == false) { return dbMessage; } char* ret = NULL; ret = ptrEdLogEnt->readDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrEdLogEnt->dbMessage; return(ret); } ret = ptrEdOrdEnt->readDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrEdOrdEnt->dbMessage; return(ret); } ret = ptrEdPhyEnt->readDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrEdPhyEnt->dbMessage; return(ret); } return(ret); } /////////////////////////////////////////////////// char* Ed::updateDB() { if ( dbAccess == false) { return dbMessage; } char* ret = NULL; ret = ptrEdLogEnt->updateDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrEdLogEnt->dbMessage; return(ret); } ret = ptrEdOrdEnt->updateDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrEdOrdEnt->dbMessage; return(ret); } ret = ptrEdPhyEnt->updateDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrEdPhyEnt->dbMessage; return(ret); } return(ret); } /////////////////////////////////////////////////// char* Ed::insertDB() { if ( dbAccess == false) { return dbMessage; } char* ret = NULL; ret = ptrEdLogEnt->insertDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrEdLogEnt->dbMessage; return(ret); } ret = ptrEdOrdEnt->insertDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrEdOrdEnt->dbMessage; return(ret); } ret = ptrEdPhyEnt->insertDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrEdPhyEnt->dbMessage; return(ret); } return(ret); } /////////////////////////////////////////////////// char* Ed::deleteDB() { if ( dbAccess == false) { return dbMessage; } char* ret = NULL; ret = ptrEdLogEnt->deleteDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrEdLogEnt->dbMessage; return(ret); } ret = ptrEdOrdEnt->deleteDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrEdOrdEnt->dbMessage; return(ret); } ret = ptrEdPhyEnt->deleteDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrEdPhyEnt->dbMessage; return(ret); } return(ret); } /////////////////////////////////////////////////// char* Ed::storeDB() { char* ret = NULL; ptrEdLogEnt->setKeysFromRecord(); ret = ptrEdLogEnt->updateDB(); if ( ret != NULL ){ ret = ptrEdLogEnt->insertDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrEdLogEnt->dbMessage; return(ret); } } ptrEdOrdEnt->setKeysFromRecord(); ret = ptrEdOrdEnt->updateDB(); if ( ret != NULL ){ ret = ptrEdOrdEnt->insertDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrEdOrdEnt->dbMessage; return(ret); } } ptrEdPhyEnt->setKeysFromRecord(); ret = ptrEdPhyEnt->updateDB(); if ( ret != NULL ){ ret = ptrEdPhyEnt->insertDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrEdPhyEnt->dbMessage; return(ret); } } return(ret); } // //Create empty objects //=================== // void Ed::emptyObjects() { if (!ptrEdLogEnt) ptrEdLogEnt = new T_PDI_LO(); if (!ptrEdOrdEnt) ptrEdOrdEnt = new T_PDI_OR(); if (!ptrEdPhyEnt) ptrEdPhyEnt = new T_PDI_PH(); } // //O P E R A T O R + //=================== // Ed Ed::operator+(const Ed &inst) const { Ed ptrEd(*this); *ptrEd.ptrEdLogEnt = *this->ptrEdLogEnt + *inst.ptrEdLogEnt; *ptrEd.ptrEdOrdEnt = *this->ptrEdOrdEnt + *inst.ptrEdOrdEnt; *ptrEd.ptrEdPhyEnt = *this->ptrEdPhyEnt + *inst.ptrEdPhyEnt; return(ptrEd); } // //A S S I G N M E N T - O P E R A T O R = //======================================= // const Ed& Ed::operator=(const Ed &inst) { if(this != &inst) { *this->ptrEdLogEnt = *inst.ptrEdLogEnt; *this->ptrEdOrdEnt = *inst.ptrEdOrdEnt; *this->ptrEdPhyEnt = *inst.ptrEdPhyEnt; } return(*this); } Ed::Ed(const Ed &inst) { ptrEdLogEnt = new T_PDI_LO(*inst.ptrEdLogEnt); ptrEdOrdEnt = new T_PDI_OR(*inst.ptrEdOrdEnt); ptrEdPhyEnt = new T_PDI_PH(*inst.ptrEdPhyEnt); }