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

📄 dbassign.cpp

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

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

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

	return m_iTotalNum;
}

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

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

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

//##ModelId=3D65E7100137
BOOLEAN DBAssign::IsFull()
{
	if (GetRecCnt() >= DBAssign::MAX_REC_COUNT)
		return TRUE;
	else return FALSE;
}

SHORT DBAssign::AddAssignRec(AssignContent *pAssignContent, 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*) pAssignContent->m_strContent;//content

	Fields[IS_SOLV].val.bl = FALSE;//IsSolv

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

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

SHORT DBAssign::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;
}

//##ModelId=3D572E0B00B4
Err DBAssign::SetIsSolvFlag(SHORT iRecID, BOOLEAN isSlovFlag)
{
	EMDB_RECORD FieldIsSolv;

	FieldIsSolv.FieldIndex = IS_SOLV;
	FieldIsSolv.val.bl = (UBYTE) isSlovFlag;

	return SetFields(iRecID, &FieldIsSolv, 1);
}

//##ModelId=3D61AF94026B
Err DBAssign::GetIsSolvFlag(SHORT iRecID, BOOLEAN *isSolvFlag)
{
	EMDB_RECORD FieldIsSolv;

	FieldIsSolv.FieldIndex = IS_SOLV;
	Err Result = 
		GetField(iRecID, &FieldIsSolv);
	if (SUC == Result)
		*isSolvFlag = (BOOLEAN) FieldIsSolv.val.bl;

	return Result;
}

//##ModelId=3D643CF500CF
Err DBAssign::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;
}

//##ModelId=3D643D000111
Err DBAssign::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;
}

//##ModelId=3D643D1702AF
Err DBAssign::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;
}

//##ModelId=3D644D26031E
Err DBAssign::GetContent(SHORT iRecID, AssignContent *pAssignContent)
{
	EMDB_RECORD FieldContent;

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

⌨️ 快捷键说明

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