📄 noticeaction.cpp
字号:
/**
* <p> Title: 对通知对象进行增加,删除,修改,查询功能的子类实现 </p>
* <p> Description:提供对社团,学生,活动对象进行增加,删除,修改,查询功能的处理 </p>
* <p> Copyright: Copyright (c) 2005-12-21 </p>
* <p> Company: bjut </p>
* @author gaok
* @version 1.0
* @Created on 2005-12-21
*/
#include "stdafx.h"
#include "STMis.h"
#include "NoticeAction.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
/*
* 构造函数
*/
NoticeAction::NoticeAction(Variable* vSt)
{
NoticeVariable* nvSt = (NoticeVariable *)vSt;
m_strHdnm = nvSt->NM; // 活动内码,主键
m_strStName = nvSt->STMC; // 社团名称
m_dtNotice = nvSt->HD_HDRQ; // 活动日期
m_tmBegin = nvSt->HD_HDKSSJ; // 活动开始时间
m_tmEnd = nvSt->HD_HDJSSJ; // 活动结束时间
m_strPlace = nvSt->HD_HDDD; // 活动地点
m_strContent = nvSt->HD_HDNR; // 活动内容
m_username = nvSt->LRR; // 录入人,修改人,删除人
}
/*
* 增加活动名称
*/
void NoticeAction::add() {
int i = 1; // 内码
int flag = 0; // 循环标志
// 从主码为1开始在数据库中的相应表中搜索,如果找到记录,则主码值加1,直到数据库中无该主码
// 值,对应的记录,则将该主码分配给新的记录
while (!flag) {
CAddNoticeRSet m_recordset(&m_database); // 连接数据库
sSql.Format("select * from HD where HD_NM='%d'", i); // 查询社团数据表
m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,sSql); // 通过CAddStMsgRSet进行绑定查询
if (m_recordset.GetRecordCount() == 0) { // 增加新的社团组织
CTime tm=CTime::GetCurrentTime(); // 获得系统当前时间
CString str=tm.Format("%Y-%m-%d %H:%M:%S"); // 格式成:yyyy-mm-dd hh:mm:ss的格式
// 录入人需要从登陆人的用户名中得到,ok
sSql.Format("INSERT INTO HD (HD_NM,HD_ZZMC,HD_HDRQ,HD_HDKSSJ,HD_HDJSSJ,HD_HDDD,HD_HDNR,HD_SCBZ,HD_LRR,HD_LRSJ) VALUES (\'%d\',\'%s\',\'%d-%d-%d\',\'%d:%d:%d\',\'%d:%d:%d\',\'%s\',\'%s\',false,\'%s\',\'%s\')",i,m_strStName,m_dtNotice.GetYear(), m_dtNotice.GetMonth(), m_dtNotice.GetDay(), m_tmBegin.GetHour(), m_tmBegin.GetMinute(), m_tmBegin.GetSecond(), m_tmEnd.GetHour(), m_tmEnd.GetMinute(), m_tmEnd.GetSecond(),m_strPlace,m_strContent,m_username,str); // 插入新的活动
m_database.ExecuteSQL(sSql); // 执行SQL文
m_database.Close(); // 关掉数据库
flag = 1; // 结束循环
} else if (m_recordset.GetRecordCount() > 0) { // 主键顺序加一
i ++;
m_database.Close(); // 关掉数据库
}
}
}
/*
* 通知维护页面的修改功能
*/
void NoticeAction::modify() {
CTime tm = CTime::GetCurrentTime(); // 获得系统当前时间
CString str = tm.Format("%Y-%m-%d %H:%M:%S"); // 格式成:yyyy-mm-dd hh:mm:ss的格式
sSql.Format("select * from HD where HD_SCBZ=false and HD_NM ='%s'", m_strHdnm);
CAddNoticeRSet m_resultset(&m_database); // 连接数据库
m_resultset.Open(AFX_DB_USE_DEFAULT_TYPE,sSql); // 通过CAddNoticeRSet进行绑定查询
CString strSQL;
CString strLRR = m_resultset.m_HD_LRR;
CString strLRSJ = m_resultset.m_HD_LRSJ;
sSql.Format("update HD set HD_ZZMC=\'%s\',HD_HDRQ=\'%d-%d-%d\',HD_HDKSSJ=\'%d:%d:%d\',HD_HDJSSJ=\'%d:%d:%d\',HD_HDDD=\'%s\',HD_HDNR=\'%s\',HD_XGR=\'%s\',HD_XGSJ=\'%s\' where HD_SCBZ=false and HD_NM=\'%s\'", m_strStName, m_dtNotice.GetYear(), m_dtNotice.GetMonth(), m_dtNotice.GetDay(), m_tmBegin.GetHour(), m_tmBegin.GetMinute(), m_tmBegin.GetSecond(), m_tmEnd.GetHour(), m_tmEnd.GetMinute(), m_tmEnd.GetSecond(), m_strPlace, m_strContent, m_username, str, m_strHdnm);
m_database.ExecuteSQL(sSql); // 执行SQL文
//strSQL.Format("delete from HD where HD_NM ='%s'",m_strHdnm);
//m_database.ExecuteSQL(strSQL); // 执行SQL文
//strSQL.Format("INSERT INTO HD (HD_NM,HD_ZZMC,HD_HDRQ,HD_HDKSSJ,HD_HDJSSJ,HD_HDDD,HD_HDNR,HD_SCBZ,HD_LRR,HD_LRSJ,HD_XGR,HD_XGSJ) VALUES (\'%s\',\'%s\',\'%d-%d-%d\',\'%d:%d:%d\',\'%d:%d:%d\','%s','%s',false,\'%s\','%s','%s','%s')",m_strHdnm,m_strStName,m_dtNotice.GetYear(), m_dtNotice.GetMonth(), m_dtNotice.GetDay(), m_tmBegin.GetHour(), m_tmBegin.GetMinute(), m_tmBegin.GetSecond(), m_tmEnd.GetHour(), m_tmEnd.GetMinute(), m_tmEnd.GetSecond(),m_strPlace,m_strContent,strLRR,strLRSJ,m_username,str); // 插入新的活动
//m_database.ExecuteSQL(strSQL); // 执行SQL文
m_database.Close(); // 关掉数据库
}
/*
* 通知维护页面的删除功能
*/
void NoticeAction::del() {
sSql.Format("select * from HD where HD_SCBZ=false and HD_NM ='%s' ", m_strHdnm);
CAddNoticeRSet m_resultset(&m_database); // 连接数据库
CTime tm=CTime::GetCurrentTime(); // 获得系统当前时间
CString str=tm.Format("%Y-%m-%d %H:%M:%S"); // 格式成:yyyy-mm-dd hh:mm:ss的格式
/* 通过CAddNoticeRSet进行绑定查询 */
if(!m_resultset.Open(AFX_DB_USE_DEFAULT_TYPE,sSql))
{
AfxMessageBox("打开数据库失败!");
return ;
}
sSql.Format("update HD set HD_SCR='%s', HD_SCSJ='%s', HD_SCBZ=true where HD_NM ='%s'",m_username,str,m_strHdnm); // 插入新的活动
m_database.ExecuteSQL(sSql); // 执行SQL文
m_database.Close(); // 关掉数据库
}
/*
* 通知维护页面的
*/
void NoticeAction::search() {
}
/*
* 通知维护页面的
*/
void NoticeAction::view() {
}
/*
* 判断数据库中是否存在所要增加的通知
* return bool true/false
*/
bool NoticeAction::isEmpty() {
sSql.Format("select * from HD where HD_HDDD='%s' and HD_HDRQ=#%d-%d-%d# and HD_HDKSSJ=#70/1/1 %d:%d:%d# and HD_HDJSSJ=#70/1/1 %d:%d:%d# and HD_SCBZ=false", m_strPlace, m_dtNotice.GetYear(), m_dtNotice.GetMonth(), m_dtNotice.GetDay(), m_tmBegin.GetHour(), m_tmBegin.GetMinute(), m_tmBegin.GetSecond(), m_tmEnd.GetHour(), m_tmEnd.GetMinute(), m_tmEnd.GetSecond()); // 查询数据库,是否已经录入过此活动
m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,sSql); // 查询数据库
/* 判断用户所增加的活动是否已经存在,不允许活动在时间地点上冲突 */
if (m_recordset.GetRecordCount() == 0) { // 如果不冲突
m_database.Close(); // 关掉数据库
return true;
} else { // 冲突
m_database.Close(); // 关闭数据库
return false;
}
}
/*
* 执行某操作(修改,删除,查询)后刷新活动列表的记录
* @param strSQL SQL文
* @return CRecordset 结果集
*/
CRecordset* NoticeAction::RefreshData(CString strSQL) {
CAddNoticeRSet* m_recordSet = new CAddNoticeRSet(&m_database); // 连接数据库
m_recordSet->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); // 查询数据库
return m_recordSet; // 返回结果集
}
/*
* 析构函数
*/
NoticeAction::~NoticeAction()
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -