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

📄 proinstore.cpp

📁 本网站是一个库存管理系统
💻 CPP
字号:
// ProInStore.cpp: implementation of the CProInStore class.

#include "stdafx.h"
#include "Stock.h"
#include "ProInStore.h"
#include "ADOConn.h"

CProInStore::CProInStore() // Construction
{
	SpId = 0;
	Pid = 0;
	Pprice = 0;
	Pnum = 0;
	MakeDate = "";
	Sid = 0;
}

CProInStore::~CProInStore() // Destruction
{

}

/**************************************************************/
/*************************成员变量操作*************************/
/**************************************************************/

int CProInStore::GetSpId() // 返回存储编号
{
	return SpId;
}

void CProInStore::SetSpId(int iSpId) // 设置存储编号
{
	SpId = iSpId;
}

int CProInStore::GetPid() // 返回产品编号 
{
	return Pid;
}

void CProInStore::SetPid(int iPid) // 设置产品编号
{
	Pid = iPid;
}

float CProInStore::GetPprice() // 返回产品入库单价
{
	return Pprice;
}

void CProInStore::SetPprice(float fPprice) // 设置产品入库单价
{
	Pprice = fPprice;
}

int CProInStore::GetPnum() // 返回产品数量
{
	return Pnum;
}

void CProInStore::SetPnum(int iPnum) // 设置产品数量
{
	Pnum = iPnum;
}

CString CProInStore::GetMakeDate() // 返回生产日期
{
	return MakeDate;
}

void CProInStore::SetMakeDate(CString cMakeDate) // 设置生产日期
{
	MakeDate = cMakeDate;
}

int CProInStore::GetSid() // 返回仓库编号
{
	return Sid;
}

void CProInStore::SetSid(int iSid) // 设置仓库编号
{
	Sid = iSid;
}

/**************************************************************/
/**************************数据库操作**************************/
/**************************************************************/

int CProInStore::SumPro(CString cPid) // 计算指定产品的库存总数量
{
	// 连接数据库
	ADOConn m_AdoConn;
	m_AdoConn.OnInitADOConn();
	// 设置SELECT语句
	_bstr_t vSQL;
	vSQL = "SELECT Sum(Pnum) AS SumNum FROM ProInStore WHERE Pid=" + cPid;
	// 执行SELETE语句
	_RecordsetPtr m_pRecordset;
	m_pRecordset = m_AdoConn.GetRecordSet(vSQL);

	// 返回各列的值
	if (m_pRecordset->adoEOF)
		return 0;
	else
	{
		return atoi((LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("SumNum"));
	}
	m_AdoConn.ExitConnect(); // 断开与数据库的连接
}

int CProInStore::HaveProduct(CString cPid)  // 判断表中是否存在指定的产品信息
{
	// 连接数据库
	ADOConn m_AdoConn;
	m_AdoConn.OnInitADOConn();
	// 设置SELECT语句
	_bstr_t vSQL;
	vSQL = "SELECT * FROM ProInStore WHERE Pid=" + cPid;
	// 执行SELETE语句
	_RecordsetPtr m_pRecordset;
	m_pRecordset = m_AdoConn.GetRecordSet(vSQL);

	// 返回各列的值
	if (m_pRecordset->adoEOF)
		return -1;
	else
		return 1;	
	m_AdoConn.ExitConnect(); // 断开与数据库的连接
}

int CProInStore::HaveStore(CString cSid)  // 判断表中是否存在指定的仓库信息
{
	// 连接数据库
	ADOConn m_AdoConn;
	m_AdoConn.OnInitADOConn();
	// 设置SELECT语句
	_bstr_t vSQL;
	vSQL = "SELECT * FROM ProInStore WHERE Sid=" + cSid;
	// 执行SELETE语句
	_RecordsetPtr m_pRecordset;
	m_pRecordset = m_AdoConn.GetRecordSet(vSQL);

	// 返回各列的值
	if (m_pRecordset->adoEOF)
		return -1;
	else
		return 1;	
	m_AdoConn.ExitConnect(); // 断开与数据库的连接
}

// 判断指定的"产品/价格/生产日期/仓库"是否在数据库中
int CProInStore::HaveData(CString cPid, CString cPprice, CString cMakeDate, CString cSid)
{
	// 连接数据库
	ADOConn m_AdoConn;
	m_AdoConn.OnInitADOConn();
	// 设置SELECT语句
	_bstr_t vSQL;
	vSQL = "SELECT * FROM ProInStore WHERE Pid=" + cPid + " AND Pprice=" 
		+ cPprice + " AND MakeDate='" + cMakeDate + "' AND Sid=" + cSid;
	// 执行SELETE语句
	_RecordsetPtr m_pRecordset;
	m_pRecordset = m_AdoConn.GetRecordSet(vSQL);

	// 返回各列的值
	if (m_pRecordset->adoEOF)
		return -1;
	else
		return 1;
	m_AdoConn.ExitConnect(); // 断开与数据库的连接
}	 

void CProInStore::sql_insert() // 插入新的产品库存记录
{
	// 连接数据库
	ADOConn m_AdoConn;
	m_AdoConn.OnInitADOConn();
	// 设置INSERT语句
	CString strPid;
	strPid.Format("%d", Pid);
	CString strPprice;
	strPprice.Format("%f", Pprice);
	CString strPnum;
	strPnum.Format("%d", Pnum);
	CString strSid;
	strSid.Format("%d", Sid);

	_bstr_t vSQL;
	vSQL = "INSERT INTO ProInStore (Pid, Pprice, Pnum, MakeDate, Sid) VALUES(" 
		+ strPid + "," + strPprice + "," + strPnum + ",'" 
		+ MakeDate + "'," + strSid + ")";	

	m_AdoConn.ExecuteSQL(vSQL);	// 执行INSERT语句
	m_AdoConn.ExitConnect(); // 断开与数据库的连接
}

// 修改指定的库存数量,在现有 库存的基础上增加成员变量Pnum的值
void CProInStore::sql_updateDiff(CString cPid, CString cPprice, CString cMakeDate, CString cSid)
{
	// 连接数据库
	ADOConn m_AdoConn;
	m_AdoConn.OnInitADOConn();
	// 设置UPDATE语句
	CString strPnum;
	strPnum.Format("%d", Pnum);

	_bstr_t vSQL;
	vSQL = "UPDATE ProInStore SET Pnum = Pnum + " + strPnum + " WHERE Pid=" + cPid + " AND Pprice=" 
		+ cPprice + " AND MakeDate='" + cMakeDate + "' AND Sid=" + cSid;
	
	m_AdoConn.ExecuteSQL(vSQL);	// 执行UPDATE语句
	m_AdoConn.ExitConnect(); // 断开与数据库的连接
}

// 修改指定的产品库存数量,将库存数量直接更新为成员变量Pnum的值
void CProInStore::sql_updatePnum(CString cSpId)
{
	// 连接数据库
	ADOConn m_AdoConn;
	m_AdoConn.OnInitADOConn();
	// 设置UPDATE语句
	CString strPnum;
	strPnum.Format("%d", Pnum);

	_bstr_t vSQL;
	vSQL = "UPDATE ProInStore SET Pnum=" + strPnum + " WHERE SpId=" + cSpId;
		
	m_AdoConn.ExecuteSQL(vSQL);	// 执行UPDATE语句	
	m_AdoConn.ExitConnect(); // 断开与数据库的连接
}

void CProInStore::sql_delete(CString cSpId) // 删除指定的产品库存记录
{
	// 连接数据库
	ADOConn m_AdoConn;
	m_AdoConn.OnInitADOConn();
	// 设置DELETE语句
	_bstr_t vSQL;
	vSQL = "DELETE FROM ProInStore WHERE SpId=" + cSpId;
	
	m_AdoConn.ExecuteSQL(vSQL);	// 执行INSERT语句
	m_AdoConn.ExitConnect(); // 断开与数据库的连接
}

void CProInStore::GetData(CString cSpId) //读取所有字段值
{
	// 连接数据库
	ADOConn m_AdoConn;
	m_AdoConn.OnInitADOConn();
	// 设置SELECT语句
	_bstr_t vSQL;
	vSQL = "SELECT * FROM ProInStore WHERE SpId=" + cSpId;
	// 执行SELETE语句
	_RecordsetPtr m_pRecordset;
	m_pRecordset = m_AdoConn.GetRecordSet(vSQL);

	// 返回各列的值
	if (m_pRecordset->adoEOF)
		CProInStore();
	else
	{
		SpId = atoi(cSpId);
		Pid = atoi((LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("Pid"));
		Pprice = atof((LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("Pprice"));
		Pnum = atoi((LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("Pnum"));
		MakeDate = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("MakeDate");
		Sid = atoi((LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("Sid"));
	}

	
	m_AdoConn.ExitConnect(); // 断开与数据库的连接
}

⌨️ 快捷键说明

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