//-- Version: 2018.7.9 10:44:17 //////////////////////////////////////////////////////////////////////// #include "Pr.h" Pr::Pr() : dbAccess (true), dbMessage (NULL) { ptrPrLogPro = NULL; ptrPrOrdPro = NULL; ptrPrPhyPro = NULL; emptyObjects(); } Pr::~Pr() { if(ptrPrLogPro != NULL) delete ptrPrLogPro; if(ptrPrOrdPro != NULL) delete ptrPrOrdPro; if(ptrPrPhyPro != NULL) delete ptrPrPhyPro; } // Parameters of table:PrLogPro // muCode1 // arg2 = source = 所有者 // Parameters of table:PrOrdPro // muCode3 // arg4 = source = 所有者 // Parameters of table:PrPhyPro // muCode5 // arg6 = source Pr::Pr( MU_CODE muCode1 ,const char* arg2 , MU_CODE muCode3 ,const char* arg4 , MU_CODE muCode5 ,const char* arg6 ) { ptrPrLogPro = NULL; ptrPrOrdPro = NULL; ptrPrPhyPro = NULL; dbAccess = true; dbMessage = NULL; ptrPrLogPro = new T_PDO_LO( muCode1 , arg2); if ( ptrPrLogPro->dbAccess == false ) { dbAccess = false; dbMessage = ptrPrLogPro->dbMessage; emptyObjects(); return; } ptrPrOrdPro = new T_PDO_OR( muCode3 , arg4); if ( ptrPrOrdPro->dbAccess == false ) { dbAccess = false; dbMessage = ptrPrOrdPro->dbMessage; emptyObjects(); return; } ptrPrPhyPro = new T_PDO_PH( muCode5 , arg6); if ( ptrPrPhyPro->dbAccess == false ) { dbAccess = false; dbMessage = ptrPrPhyPro->dbMessage; emptyObjects(); return; } } // Parameters of table:PrLogPro // muCode1 // arg2 = source = 所有者 // Parameters of table:PrOrdPro // muCode3 // arg4 = source = 所有者 // Parameters of table:PrPhyPro // muCode5 // arg6 = source void Pr::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 ); ptrPrLogPro->initInsertKeys( muCode1.actual.muId , muCode1.actual.muCreator , muCode1.actual.musId , arg2); ptrPrOrdPro->initInsertKeys( muCode3.actual.muId , muCode3.actual.muCreator , muCode3.actual.musId , arg4); ptrPrPhyPro->initInsertKeys( muCode5.actual.muId , muCode5.actual.muCreator , muCode5.actual.musId , arg6); } // Parameters of table:PrLogPro // muCode1 // arg2 = source = 所有者 // Parameters of table:PrOrdPro // muCode3 // arg4 = source = 所有者 // Parameters of table:PrPhyPro // muCode5 // arg6 = source void Pr::setPrimKey( MU_CODE muCode1 ,const char* arg2 , MU_CODE muCode3 ,const char* arg4 , MU_CODE muCode5 ,const char* arg6 ) { ptrPrLogPro->setPrimKey( muCode1.actual.muId , muCode1.actual.muCreator , muCode1.actual.musId , arg2); ptrPrOrdPro->setPrimKey( muCode3.actual.muId , muCode3.actual.muCreator , muCode3.actual.musId , arg4); ptrPrPhyPro->setPrimKey( muCode5.actual.muId , muCode5.actual.muCreator , muCode5.actual.musId , arg6); } // muCode1 // arg2 = source = 所有者 Pr::Pr( MU_CODE muCode1 ,const char* arg2 ) { ptrPrLogPro = NULL; ptrPrOrdPro = NULL; ptrPrPhyPro = 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 ) { ptrPrLogPro = new T_PDO_LO(material.matUnits.logMuCode[0] , arg2); if ( ptrPrLogPro->dbAccess == false ) { dbAccess = false; dbMessage = ptrPrLogPro->dbMessage; emptyObjects(); return; } } else { ptrPrLogPro = new T_PDO_LO(material.matUnits.logMuCode[material.matUnits.actLogicalIndex] , arg2); if ( ptrPrLogPro->dbAccess == false ) { dbAccess = false; dbMessage = ptrPrLogPro->dbMessage; emptyObjects(); return; } } if ( material.matUnits.actOrderIndex == -1 ) { if ( material.matUnits.actLogicalIndex == -1 ) { ptrPrOrdPro = new T_PDO_OR(material.matUnits.ordMuCode[0][0] , arg2); if ( ptrPrOrdPro->dbAccess == false ) { dbAccess = false; dbMessage = ptrPrOrdPro->dbMessage; emptyObjects(); return; } } else { ptrPrOrdPro = new T_PDO_OR(material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][0] , arg2); if ( ptrPrOrdPro->dbAccess == false ) { dbAccess = false; dbMessage = ptrPrOrdPro->dbMessage; emptyObjects(); return; } } } else { ptrPrOrdPro = new T_PDO_OR(material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][material.matUnits.actOrderIndex] , arg2); if ( ptrPrOrdPro->dbAccess == false ) { dbAccess = false; dbMessage = ptrPrOrdPro->dbMessage; emptyObjects(); return; } } ptrPrPhyPro = new T_PDO_PH( material.matUnits.phyMuCode , arg2); if ( ptrPrPhyPro->dbAccess == false ) { dbAccess = false; dbMessage = ptrPrPhyPro->dbMessage; emptyObjects(); return; } } // muCode1 // arg2 = source = 所有者 void Pr::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 ) { ptrPrLogPro->initInsertKeys( material.matUnits.logMuCode[0].actual.muId , material.matUnits.logMuCode[0].actual.muCreator , material.matUnits.logMuCode[0].actual.musId , arg2); } else { ptrPrLogPro->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 ) { ptrPrOrdPro->initInsertKeys( material.matUnits.ordMuCode[0][0].actual.muId , material.matUnits.ordMuCode[0][0].actual.muCreator , material.matUnits.ordMuCode[0][0].actual.musId , arg2); } else { ptrPrOrdPro->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 { ptrPrOrdPro->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); } ptrPrPhyPro->initInsertKeys( material.matUnits.phyMuCode.actual.muId , material.matUnits.phyMuCode.actual.muCreator , material.matUnits.phyMuCode.actual.musId , arg2); } // muCode1 // arg2 = source = 所有者 void Pr::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 ) { ptrPrLogPro->setPrimKey( material.matUnits.logMuCode[0].actual.muId , material.matUnits.logMuCode[0].actual.muCreator , material.matUnits.logMuCode[0].actual.musId , arg2); } else { ptrPrLogPro->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 ) { ptrPrOrdPro->setPrimKey( material.matUnits.ordMuCode[0][0].actual.muId , material.matUnits.ordMuCode[0][0].actual.muCreator , material.matUnits.ordMuCode[0][0].actual.musId , arg2); } else { ptrPrOrdPro->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 { ptrPrOrdPro->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); } ptrPrPhyPro->setPrimKey( material.matUnits.phyMuCode.actual.muId , material.matUnits.phyMuCode.actual.muCreator , material.matUnits.phyMuCode.actual.musId , arg2); } /////////////////////////////////////////////////// char* Pr::readDB() { if ( dbAccess == false) { return dbMessage; } if ( dbAccess == false) { return dbMessage; } char* ret = NULL; ret = ptrPrLogPro->readDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrPrLogPro->dbMessage; return(ret); } ret = ptrPrOrdPro->readDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrPrOrdPro->dbMessage; return(ret); } ret = ptrPrPhyPro->readDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrPrPhyPro->dbMessage; return(ret); } return(ret); } /////////////////////////////////////////////////// char* Pr::updateDB() { if ( dbAccess == false) { return dbMessage; } char* ret = NULL; ret = ptrPrLogPro->updateDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrPrLogPro->dbMessage; return(ret); } ret = ptrPrOrdPro->updateDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrPrOrdPro->dbMessage; return(ret); } ret = ptrPrPhyPro->updateDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrPrPhyPro->dbMessage; return(ret); } return(ret); } /////////////////////////////////////////////////// char* Pr::insertDB() { if ( dbAccess == false) { return dbMessage; } char* ret = NULL; ret = ptrPrLogPro->insertDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrPrLogPro->dbMessage; return(ret); } ret = ptrPrOrdPro->insertDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrPrOrdPro->dbMessage; return(ret); } ret = ptrPrPhyPro->insertDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrPrPhyPro->dbMessage; return(ret); } return(ret); } /////////////////////////////////////////////////// char* Pr::deleteDB() { if ( dbAccess == false) { return dbMessage; } char* ret = NULL; ret = ptrPrLogPro->deleteDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrPrLogPro->dbMessage; return(ret); } ret = ptrPrOrdPro->deleteDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrPrOrdPro->dbMessage; return(ret); } ret = ptrPrPhyPro->deleteDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrPrPhyPro->dbMessage; return(ret); } return(ret); } /////////////////////////////////////////////////// char* Pr::storeDB() { char* ret = NULL; ptrPrLogPro->setKeysFromRecord(); ret = ptrPrLogPro->updateDB(); if ( ret != NULL ){ ret = ptrPrLogPro->insertDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrPrLogPro->dbMessage; return(ret); } } ptrPrOrdPro->setKeysFromRecord(); ret = ptrPrOrdPro->updateDB(); if ( ret != NULL ){ ret = ptrPrOrdPro->insertDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrPrOrdPro->dbMessage; return(ret); } } ptrPrPhyPro->setKeysFromRecord(); ret = ptrPrPhyPro->updateDB(); if ( ret != NULL ){ ret = ptrPrPhyPro->insertDB(); if ( ret != NULL ){ dbAccess = false; dbMessage = ptrPrPhyPro->dbMessage; return(ret); } } return(ret); } // //Create empty objects //=================== // void Pr::emptyObjects() { if (!ptrPrLogPro) ptrPrLogPro = new T_PDO_LO(); if (!ptrPrOrdPro) ptrPrOrdPro = new T_PDO_OR(); if (!ptrPrPhyPro) ptrPrPhyPro = new T_PDO_PH(); } // //O P E R A T O R + //=================== // Pr Pr::operator+(const Pr &inst) const { Pr ptrPr(*this); *ptrPr.ptrPrLogPro = *this->ptrPrLogPro + *inst.ptrPrLogPro; *ptrPr.ptrPrOrdPro = *this->ptrPrOrdPro + *inst.ptrPrOrdPro; *ptrPr.ptrPrPhyPro = *this->ptrPrPhyPro + *inst.ptrPrPhyPro; return(ptrPr); } // //A S S I G N M E N T - O P E R A T O R = //======================================= // const Pr& Pr::operator=(const Pr &inst) { if(this != &inst) { *this->ptrPrLogPro = *inst.ptrPrLogPro; *this->ptrPrOrdPro = *inst.ptrPrOrdPro; *this->ptrPrPhyPro = *inst.ptrPrPhyPro; } return(*this); } Pr::Pr(const Pr &inst) { ptrPrLogPro = new T_PDO_LO(*inst.ptrPrLogPro); ptrPrOrdPro = new T_PDO_OR(*inst.ptrPrOrdPro); ptrPrPhyPro = new T_PDO_PH(*inst.ptrPrPhyPro); }