/************************************************************************************************** 功能:删除记录 参数:ID,删除的记录的ID 返回:-2,数据库尚未连接 -3, 从列表中删除记录失败 -4, 数据库删除操作失败 0, 成功 作者:佘佳明 2014-11-24 **************************************************************************************************/ int CHistoryTicketItemListMgt::del( const DWORD32 ID ) { if(!m_isInit) return -2; if( checkDBConnect() < 0 ) return -4; int ret = isIDExist(ID); if(ret < 0) return -5; char *sql = (char*)"DELETE FROM t_historyticketitemlist WHERE ID = :f1_ID<unsigned int>"; try { otl_stream delStream(1, sql, m_db); delStream << ID; printf("数据库删除记录 ID: %d\n", ID); m_db.commit(); int ret = delFromList(ID); if(ret < 0) return -3; } catch (otl_exception& p) { WLOutDebug("删除票项表操作失败!"); cerr<<p.msg<<endl; // print out error message cerr<<p.stm_text<<endl; // print out SQL that caused the error cerr<<p.sqlstate<<endl; // print out SQLSTATE message cerr<<p.var_info<<endl; // print out the variable that caused the error return -4; } return 0; }
/************************************************************************************************** 功能:更新本地列表记录 参数:ID,记录ID pInputParam,待更新记录 返回:-1,参数错误 -2,记录不存在 0,成功 作者:李施施 2014-07-30 **************************************************************************************************/ int CHistoryTicketItemListMgt::updateList( const DWORD32 ID, const TTicketItemList *pInputParam ) { if(NULL == pInputParam) return -1; int index = isIDExist(ID); if (index < 0) return -2; TTicketItemList *temp = getListByIndex(index); memcpy(temp, pInputParam, sizeof(TTicketItemList)); return 0; }
/************************************************************************************************** 功能:从列表中删除指定ID的记录 参数:ID,ID 返回:>0,该ID存在,删除成功 -1,ID不存在 作者:佘佳明 2014-11-24 **************************************************************************************************/ int CHistoryTicketItemListMgt::delFromList( const DWORD32 ID ) { int index = isIDExist(ID); if(index < 0) return -1; m_pCS->enter(); for(int i=index; i<m_count-1; i++) { memcpy(&m_pList[i], &m_pList[i+1], sizeof(TTicketItemList)); } memset(&m_pList[m_count-1], 0x00, sizeof(TTicketItemList)); m_count--; m_pCS->leave(); return 0; }
bool EnigmaSim::checkOCell(){ bool check = true; if(isIDExist(ocell.id)){ if(isIDPending(ocell.id)){ check = false; showOCell("+ERROR: the ID is locked when sent out"); }else{ if( isHighQos(ocell.qos) ){ int p = getFirstPtr(ocell.id); if( (dutActive.at(p).id != ocell.id) || (dutActive.at(p).qos != ocell.qos) || (dutActive.at(p).payload[0] != ocell.payload[0]) || (dutActive.at(p).payload[1] != ocell.payload[1]) || (dutActive.at(p).payload[2] != ocell.payload[2]) || (dutActive.at(p).payload[3] != ocell.payload[3]) ){ check = false; } if(check == false){ if(isIDUnique(ocell.id)){ showOCell("+ERROR: FLIT INFO not correct when ID is unique"); }else{ showOCell("+ERROR: FLIT INFO not correct when ID is not unique"); } showFLIT( dutActive.at(p) ); } }else{ showOCell("+ERROR: FLIT is not high Qos when invoke"); check = false; } } }else{ showOCell("+ERROR: the FLIT is not exist"); check = false; } return check; }
/************************************************************************************************** 功能:更新指定ID的记录 参数:ID,ID pStation,待更新的记录 返回:-1,参数错误 -2, 数据库尚未连接 -3,该ID不存在 -4, 数据库操作失败 0,更新成功 作者:佘佳明 2014-11-24 **************************************************************************************************/ int CHistoryTicketItemListMgt::update( const DWORD32 ID, TTicketItemList *pInputParam ) { if(NULL == pInputParam) return -1; if(!m_isInit) return -2; if( checkDBConnect() < 0 ) return -4; int ret = isIDExist(ID); if(ret < 0) return -3; char *sql = (char*)"UPDATE t_historyticketitemlist SET ticketID=:f1<unsigned int>, \ ticketActionID=:f2<unsigned int>, \ `index`=:f3<unsigned int>, \ itemType=:f4<unsigned int>, \ itemContent=:f5<char[255]>, \ isPrint=:f6<unsigned int>, \ itemShipType=:f7<unsigned int>, \ subItemIndex=:f8<unsigned int>, \ isCompleted=:f9<unsigned int>, \ isTicketItem=:f10<unsigned int>, \ isKeyItem=:f11<unsigned int>, \ keyItemIndex=:f12<unsigned int>, \ isLinkItem=:f13<unsigned int>, \ linkItemIndex=:f14<unsigned int>, \ isToKey=:f15<unsigned int>, \ promptType=:f16<unsigned int> WHERE ID=:f17<unsigned int>"; try { otl_stream updateStream(1, sql, m_db); updateStream << pInputParam->ticketID; updateStream << pInputParam->ticketActionID; updateStream << pInputParam->index; updateStream << pInputParam->itemType; updateStream << pInputParam->itemContent; updateStream << pInputParam->isPrint; updateStream << pInputParam->itemShipType; updateStream << pInputParam->subItemIndex; updateStream << pInputParam->isCompleted; updateStream << pInputParam->isTicketItem; updateStream << pInputParam->isKeyItem; updateStream << pInputParam->keyItemIndex; updateStream << pInputParam->isLinkItem; updateStream << pInputParam->linkItemIndex; updateStream << pInputParam->isToKey; updateStream << pInputParam->promptType; updateStream << ID; m_db.commit(); } catch (otl_exception& p) { WLOutDebug("更新票项表操作失败!"); cerr<<p.msg<<endl; // print out error message cerr<<p.stm_text<<endl; // print out SQL that caused the error cerr<<p.sqlstate<<endl; // print out SQLSTATE message cerr<<p.var_info<<endl; // print out the variable that caused the error return -4; } return 0; }