/************************************************************************************************** 版本所有(C), 2021-2022, 北京普达迪泰 *************************************************************************************************** 文 件 名:EquipDataCylinderManager.cpp 版 本 号: 1.00初版 作 者: HYF 生成日期:2021-12-20 最近修改: 功能描述: 圆柱数据访问对象 函数列表: 修改历史: 1.日 期 : 2021-12-20 作 者 : HYF 修改内容 : 创建文件 **************************************************************************************************/ #include "pch.h" #include "EquipDataCylinderManager.h" #include "CppSQLite3.h" #include "DBFactory.h" #include "EquipDataCylinder.h" EquipDataCylinderManager::EquipDataCylinderManager() { } EquipDataCylinderManager::~EquipDataCylinderManager() { } /************************************************************************************************** 函 数 名 :QueryAll 功能描述 :查询 输出参数 :略 返 回 值 :CppSQLite3Query **************************************************************************************************/ CppSQLite3Query EquipDataCylinderManager::Query() { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); return pDB->execQuery(_T("SELECT * FROM equip_data_cylinder;")); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); } } CppSQLite3Query EquipDataCylinderManager::Query(DWORD iTaskId) { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); char szCmd[256]; sprintf_s(szCmd, "SELECT * FROM equip_data_cylinder WHERE task_id ='%d';", iTaskId); return pDB->execQuery(szCmd); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); } } CppSQLite3Query EquipDataCylinderManager::Query(DWORD iTaskId, LPCTSTR szEquipCode) { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); char szCmd[256]; sprintf_s(szCmd, "SELECT * FROM equip_data_cylinder WHERE task_id=%d AND equip_code ='%s';", iTaskId, szEquipCode); return pDB->execQuery(szCmd); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); } } CppSQLite3Query EquipDataCylinderManager::Query(DWORD iTaskId, LPCTSTR szEquipCode, DWORD itemId) { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); char szCmd[256]; sprintf_s(szCmd, "SELECT * FROM equip_data_cylinder WHERE task_id=%d AND equip_code ='%s' AND item_id =%d;",iTaskId, szEquipCode, itemId); return pDB->execQuery(szCmd); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); } } CppSQLite3Query EquipDataCylinderManager::Query(DWORD iTaskId, LPCTSTR szEquipCode, DWORD iItemId, DWORD iSubitemId) { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); char szCmd[256]; sprintf_s(szCmd, "SELECT * FROM equip_data_cylinder WHERE task_id=%d AND equip_code ='%s' AND item_id =%d AND subitem_id =%d;", iTaskId, szEquipCode, iItemId, iSubitemId); return pDB->execQuery(szCmd); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); } } /************************************************************************************************** 函 数 名 :Add 功能描述 :增加 输入参数 :略 输出参数 :略 返 回 值 :TRUE 成功;FALSE 失败 **************************************************************************************************/ BOOL EquipDataCylinderManager::Add(const EquipDataCylinder& data) { DWORD iTaskId = data.GetTaskId(); CString szEquipCode = data.GetEquipCode(); DWORD iItemId = data.GetItemId(); DWORD iSubItemId = data.GetSubItemId(); CString szCylinderTitle = data.GetCylinderTitle(); CString szCylinderCode = data.GetCylinderCode(); DOUBLE fPoint1X = data.GetPoint1X(); DOUBLE fPoint1Y = data.GetPoint1Y(); DOUBLE fPoint1Z = data.GetPoint1Z(); DOUBLE fPoint2X = data.GetPoint2X(); DOUBLE fPoint2Y = data.GetPoint2Y(); DOUBLE fPoint2Z = data.GetPoint2Z(); DOUBLE fCylinderRadius = data.GetCylinderRadius(); DOUBLE fCylinderLength = data.GetCylinderLength(); CString szCylinderDesc = data.GetCylinderDesc(); try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); CppSQLite3Buffer bufSQL; bufSQL.format("INSERT INTO equip_data_cylinder ( " " task_id, " " equip_code, " " item_id, " " subitem_id, " " cylinder_title, " " cylinder_code, " " point1_x, " " point1_y, " " point1_z, " " point2_x, " " point2_y, " " point2_z, " " cylinder_radius, " " cylinder_length, " " cylinder_desc ) " " VALUES (%d, %Q, %d, %d, %Q, %Q, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %.3f, %Q);", iTaskId, szEquipCode, iItemId, iSubItemId, szCylinderTitle, szCylinderCode, fPoint1X, fPoint1Y, fPoint1Z, fPoint2X, fPoint2Y, fPoint2Z, fCylinderRadius, fCylinderLength, szCylinderDesc); pDB->execDML("begin transaction;"); pDB->execDML(bufSQL); pDB->execDML("commit transaction;"); bufSQL.clear(); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); return FALSE; } return TRUE; } /************************************************************************************************** 函 数 名 :Update 功能描述 :更新 输入参数 :略 输出参数 :略 返 回 值 :TRUE 成功;FALSE 失败 **************************************************************************************************/ BOOL EquipDataCylinderManager::Update(const EquipDataCylinder& data) { DWORD iTaskId = data.GetTaskId(); CString szEquipCode = data.GetEquipCode(); DWORD iItemId = data.GetItemId(); DWORD iSubItemId = data.GetSubItemId(); CString szCylinderTitle = data.GetCylinderTitle(); CString szCylinderCode = data.GetCylinderCode(); DOUBLE fPoint1X = data.GetPoint1X(); DOUBLE fPoint1Y = data.GetPoint1Y(); DOUBLE fPoint1Z = data.GetPoint1Z(); DOUBLE fPoint2X = data.GetPoint2X(); DOUBLE fPoint2Y = data.GetPoint2Y(); DOUBLE fPoint2Z = data.GetPoint2Z(); DOUBLE fCylinderRadius = data.GetCylinderRadius(); DOUBLE fCylinderLength = data.GetCylinderLength(); CString szCylinderDesc = data.GetCylinderDesc(); try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); CppSQLite3Buffer bufSQL; bufSQL.format(" UPDATE equip_data_cylinder " " SET cylinder_title = %Q, " " cylinder_code = %Q, " " point1_x = %.3f, " " point1_y = %.3f, " " point1_z = %.3f, " " point2_x = %.3f, " " point2_y = %.3f, " " point2_z = %.3f, " " cylinder_radius = %.3f, " " cylinder_length = %.3f, " " cylinder_desc = %Q " " WHERE task_id= %d AND equip_code=%Q AND item_id=%d AND subitem_id=%d;", szCylinderTitle, szCylinderCode, fPoint1X, fPoint1Y, fPoint1Z, fPoint2X, fPoint2Y, fPoint2Z, fCylinderRadius, fCylinderLength, szCylinderDesc, iTaskId, szEquipCode, iItemId, iSubItemId); pDB->execDML("begin transaction;"); int affected = pDB->execDML(bufSQL); pDB->execDML("commit transaction;"); bufSQL.clear(); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); return FALSE; } return TRUE; } /************************************************************************************************** 函 数 名 :Update 功能描述 :更新 输入参数 :略 输出参数 :略 返 回 值 :TRUE 成功;FALSE 失败 **************************************************************************************************/ BOOL EquipDataCylinderManager::UpdateTitle(DWORD iTaskId, LPCTSTR szEquipCode, DWORD iItemId, DWORD iSubitemId, LPCTSTR szCylinderTitle) { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); CppSQLite3Buffer bufSQL; bufSQL.format("UPDATE equip_data_cylinder SET cylinder_title=%Q WHERE task_id=%d AND equip_code=%Q AND item_id=%d AND subitem_id=%d;", szCylinderTitle, iTaskId, szEquipCode, iItemId, iSubitemId); pDB->execDML("begin transaction;"); int affected = pDB->execDML(bufSQL); pDB->execDML("commit transaction;"); bufSQL.clear(); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); return FALSE; } return TRUE; } /************************************************************************************************** 函 数 名 :Delete 功能描述 :删除 输入参数 :略 输出参数 :略 返 回 值 :TRUE 成功;FALSE 失败 **************************************************************************************************/ BOOL EquipDataCylinderManager::Delete(DWORD iTaskId) { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); CppSQLite3Buffer bufSQL; bufSQL.format("DELETE FROM equip_data_cylinder WHERE task_id=%d;", iTaskId); pDB->execDML("begin transaction;"); pDB->execDML(bufSQL); pDB->execDML("commit transaction;"); bufSQL.clear(); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); return FALSE; } return TRUE; } BOOL EquipDataCylinderManager::Delete(DWORD iTaskId, LPCTSTR szEquipCode) { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); CppSQLite3Buffer bufSQL; bufSQL.format("DELETE FROM equip_data_cylinder WHERE task_id=%d AND equip_code=%Q;", iTaskId, szEquipCode); pDB->execDML("begin transaction;"); pDB->execDML(bufSQL); pDB->execDML("commit transaction;"); bufSQL.clear(); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); return FALSE; } return TRUE; } BOOL EquipDataCylinderManager::Delete(DWORD iTaskId, LPCTSTR szEquipCode, DWORD iItemId) { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); CppSQLite3Buffer bufSQL; bufSQL.format("DELETE FROM equip_data_cylinder WHERE task_id=%d AND equip_code=%Q AND item_id=%d;", iTaskId, szEquipCode, iItemId); pDB->execDML("begin transaction;"); pDB->execDML(bufSQL); pDB->execDML("commit transaction;"); bufSQL.clear(); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); return FALSE; } return TRUE; } BOOL EquipDataCylinderManager::Delete(DWORD iTaskId, LPCTSTR szEquipCode, DWORD iItemId, DWORD iSubitemId) { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); CppSQLite3Buffer bufSQL; bufSQL.format("DELETE FROM equip_data_cylinder WHERE task_id=%d AND equip_code=%Q AND item_id=%d AND subitem_id=%d;", iTaskId, szEquipCode, iItemId, iSubitemId); pDB->execDML("begin transaction;"); pDB->execDML(bufSQL); pDB->execDML("commit transaction;"); bufSQL.clear(); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); return FALSE; } return TRUE; } /************************************************************************************************** 函 数 名 :ClearAll 功能描述 :清除所有数据 输入参数 :略 输出参数 :略 返 回 值 :TRUE 成功;FALSE 失败 **************************************************************************************************/ BOOL EquipDataCylinderManager::ClearAll() { try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); CppSQLite3Buffer bufSQL; bufSQL.format("DELETE FROM equip_data_cylinder");//删除语句 pDB->execDML("begin transaction;"); pDB->execDML(bufSQL); pDB->execDML("commit transaction;"); bufSQL.clear(); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); return FALSE; } return TRUE; } /************************************************************************************************** 函 数 名 :Count 功能描述 :根据条件查询记录数目 输入参数 :略 输出参数 :略 返 回 值 :TRUE 成功;FALSE 失败 **************************************************************************************************/ int EquipDataCylinderManager::Count(DWORD iTaskId) { int iCount = 0; try { CppSQLite3DB* pDB = DBFactory::GetSQLite(); char szCmd[256]; sprintf_s(szCmd, "SELECT COUNT(*) AS NUM FROM equip_data_cylinder WHERE task_id ='%d';", iTaskId); CppSQLite3Query q = pDB->execQuery(szCmd); iCount = q.getIntField("NUM"); q.finalize(); } catch (CppSQLite3Exception& e) { LOG::E(e.errorMessage()); iCount = 0; } return iCount; }