⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbuserinfo.cpp

📁 嵌入式系统PDA的流程
💻 CPP
字号:
#include "DBUserInfo.h"
#include "UserContent.h"
#include "SysClock.h"

SHORT DBUserInfo::m_iNewNum = -1;
SHORT DBUserInfo::m_iTotalNum = -1;

SHORT DBUserInfo::GetRecCnt()
{
	if (-1 == m_iTotalNum)
	{
		m_iTotalNum = DBOpersBase::GetRecCnt ();
	}

	return m_iTotalNum;
}

//overland DelRec, only for count the number of recorder.
Err DBUserInfo::DelRec(
        //##Documentation
        //## 记录ID号
        SHORT iRecID)
{
	if (SUC == DBOpersBase::DelRec (iRecID))
	{
		--m_iTotalNum;
		return SUC;
	}
	
	return ERR_DB;
}

CHAR* DBUserInfo::GetTableName()
{
	return "DBUserInfo";
}

UWORD DBUserInfo::GetFieldCnt()
{
	return FIELD_COUNT;
}

BOOLEAN DBUserInfo::IsFull()
{
	if (GetRecCnt() >= DBUserInfo::MAX_REC_COUNT)
		return TRUE;
	else return FALSE;
}

SHORT DBUserInfo::AddUserInfoRec(UserContent *pUserContent, SysTime *SendTime)
{
	EMDB_RECORD Fields[FIELD_COUNT];

	for (UWORD i = IS_NEW; i < FIELD_COUNT; i++)
		Fields[i].FieldIndex = i;

	Fields[IS_NEW].val.bl = TRUE;//IsNew

	SysTime RecvTime;
	SysClock::GetInstance()->GetLocalTime(&RecvTime);
	Fields[RECV_TIME].val.c = (CHAR*) &RecvTime;//local receive time

	Fields[CONTENT].val.c = (CHAR*) pUserContent->m_strContent;//content

	Fields[SEND_TIME].val.c = (CHAR*) &SendTime;//server send time

	SHORT idNewRec = GetRecCnt();
	if (SUC == AddRec((EMDB_RECORD*)&Fields))
	{
		++m_iNewNum;
		++m_iTotalNum;
		return idNewRec;
	}
	else
		return -1;
}

SHORT DBUserInfo::GetNewCnt()
{
	SHORT i;
	SHORT iCount = 0;
	BOOLEAN isNew = FALSE;

	if (-1 == m_iNewNum)
	{
		for (i = 0; i < GetRecCnt(); i++)
		{
			GetIsNewFlag(i, &isNew);
			if (isNew)
				iCount++;
		}
		m_iNewNum = iCount;
	}
	return m_iNewNum;
}

Err DBUserInfo::SetIsNewFlag(SHORT iRecID, BOOLEAN isNew)
{
	EMDB_RECORD FieldIsNew;

	FieldIsNew.FieldIndex = IS_NEW;
	FieldIsNew.val.bl = (UBYTE) isNew;

	if (SUC == SetFields(iRecID, &FieldIsNew, 1))
	{
		if (!isNew)
		{
			--m_iNewNum;
		}
		return SUC;
	}

	return -1;
}

Err DBUserInfo::GetIsNewFlag(SHORT iRecID, BOOLEAN *isNew)
{
	EMDB_RECORD FieldIsNew;

	FieldIsNew.FieldIndex = IS_NEW;
	Err Result = 
		GetField(iRecID, &FieldIsNew);
	if (SUC == Result)
		*isNew = (BOOLEAN) FieldIsNew.val.bl;

	return Result;
}

Err DBUserInfo::GetRecvTime(SHORT iRecID, CHAR* pszTime)
{
	EMDB_RECORD FieldRecvTime;
	SysTime RecvTime;

	FieldRecvTime.FieldIndex = RECV_TIME;
	FieldRecvTime.val.c = (CHAR*) &RecvTime;
	Err RetVal = GetField(iRecID, &FieldRecvTime);
	RecvTime.ToString(pszTime);
	return RetVal;
}

Err DBUserInfo::GetContent(SHORT iRecID, UserContent *pUserContent)
{
	EMDB_RECORD FieldContent;

	FieldContent.FieldIndex = CONTENT;
	FieldContent.val.c = (CHAR*)pUserContent->m_strContent;
	return GetField(iRecID, &FieldContent);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -