📄 proinstore.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 + -