📄 database.cpp
字号:
// Database.cpp: implementation of the CDatabase class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "MerchandiseStore.h"
#include "Database.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CDatabase::CDatabase()
{
}
CDatabase::~CDatabase()
{
}
int CDatabase::InitData()
{
char m_szConnect[512];
char m_szTmp[1024]="" ;
char m_szHost[20], m_szUser[20], m_szPwd[20], m_szDef[20] ;
GetPrivateProfileString("数据库", "主机名", NULL, m_szHost, sizeof(m_szHost), IniFile) ;
GetPrivateProfileString("数据库", "用户名", NULL, m_szUser, sizeof(m_szUser), IniFile) ;
GetPrivateProfileString("数据库", "密码", NULL, m_szPwd, sizeof(m_szPwd), IniFile) ;
GetPrivateProfileString("数据库", "默认库", NULL, m_szDef, sizeof(m_szDef), IniFile) ;
try
{
//连接XdData
HRESULT hr = m_Connection.CreateInstance(__uuidof(Connection));
sprintf(m_szConnect,"provider = sqloledb;server=%s;database=%s;", m_szHost, m_szDef);
hr=m_Connection->Open(_bstr_t(m_szConnect),_bstr_t(m_szUser),_bstr_t(m_szPwd),-1);
sprintf(m_szTmp, "数据库连接成功!");
//连接XdData
}
catch(_com_error & e)
{
sprintf(m_szTmp, "数据库打开失败,错误原因:%s\n",LPCTSTR(e.Description()));
return 0 ;
}
return 1 ;
}
void CDatabase::ListDepartmentToCtrl(CListCtrl *m_hListCtrl)
{
m_hListCtrl->DeleteAllItems() ;
_variant_t v(0L) ;
_RecordsetPtr m_Rsp ;
char m_szSql[512] ;
sprintf(m_szSql, "select * from tb_department") ;
try{
m_Rsp = m_Connection->Execute(_bstr_t(m_szSql), &v, adCmdText) ;
while(!m_Rsp->GetadoEOF())
{
m_hListCtrl->InsertItem(0, "") ;
v = m_Rsp->GetCollect("departmentname") ;
m_hListCtrl->SetItemText(0, 0, _bstr_t(v)) ;
m_Rsp->MoveNext() ;
}
}
catch(_com_error & e)
{
char m_szTmp[1024] ;
sprintf(m_szTmp, "执行==>%s<==, 数据库操作失败,错误原因:%s\n",m_szSql, LPCTSTR(e.Description()));
}
}
void CDatabase::DeleteDataWhere(int m_nIndex, char *Fond)
{
char m_szSql[512] ;
_variant_t v(0L) ;
switch(m_nIndex)
{
case DPMT://tb_operator
{
sprintf(m_szSql, "delete from tb_department where departmentname = '%s'", Fond) ;
break ;
}
case EMPE://tb_Employee
{
sprintf(m_szSql, "delete from tb_Employee where EmployeeID = '%s'", Fond) ;
break ;
}
case SFI://tb_SysFunctionInfo
{
sprintf(m_szSql, "delete from tb_SysFunctionInfo where FunName = '%s'", Fond) ;
break ;
}
case RI://tb_roleinfo
{
sprintf(m_szSql, "delete from tb_roleinfo where roleName = '%s'", Fond) ;
break ;
}
case OP://tb_operator
{
sprintf(m_szSql, "delete from tb_operator where id = '%s'", Fond) ;
break ;
}
case SPXXT://tb_machandiseinfo by ID
{
sprintf(m_szSql, "delete from tb_machandiseinfo where id = '%s'", Fond) ;
break ;
}
case KCGL://tb_merchandisestorage
{
sprintf(m_szSql, "delete from tb_merchandisestorage where merchandiseID = '%s'", Fond) ;
break ;
}
case SAP://tb_StockApply_main,tb_stockApp_sub
{
sprintf(m_szSql, "delete from tb_StockApply_main where AppID = '%s'", Fond) ;
break ;
}
case CGRK://
{
sprintf(m_szSql, "delete from tb_intostorage_main where ID = '%s'", Fond) ;
break ;
}
case RKTH://tb_cancelin_main,tb_cancelIn_sub
{
sprintf(m_szSql, "delete from tb_cancelin_main where CancelID = '%s'", Fond) ;
break ;
}
}
try{
if(m_nIndex==SAP)
{
m_Connection->Execute(_bstr_t(m_szSql), &v, adCmdText) ;
sprintf(m_szSql, "delete from tb_stockApp_sub where AppID = '%s'", Fond) ;
}
if(m_nIndex==RKTH)
{
m_Connection->Execute(_bstr_t(m_szSql), &v, adCmdText) ;
sprintf(m_szSql, "delete from tb_cancelIn_sub where CancelID = '%s'", Fond) ;
}
m_Connection->Execute(_bstr_t(m_szSql), &v, adCmdText) ;
}
catch(_com_error & e)
{
char m_szTmp[1024] ;
sprintf(m_szTmp, "执行==>%s<==, 数据库操作失败,错误原因:%s\n",m_szSql, LPCTSTR(e.Description()));
}
}
void CDatabase::UpdateDepartmentData(char *m_szName)
{
char m_szSql[512] ;
_variant_t v(0L) ;
try{
sprintf(m_szSql, "insert into tb_department (departmentname) values ('%s')", m_szName) ;
m_Connection->Execute(_bstr_t(m_szSql), &v, adCmdText) ;
}
catch(_com_error & e)
{
char m_szTmp[1024] ;
sprintf(m_szTmp, "执行==>%s<==, 数据库操作失败,错误原因:%s\n",m_szSql, LPCTSTR(e.Description()));
}
}
void CDatabase::ListEmployeeToCtrl(CListCtrl *m_hListCtrl)
{
m_hListCtrl->DeleteAllItems() ;
_variant_t v(0L) ;
_RecordsetPtr m_Rsp ;
char m_szSql[512] ;
sprintf(m_szSql, "select * from tb_Employee") ;
try{
m_Rsp = m_Connection->Execute(_bstr_t(m_szSql), &v, adCmdText) ;
while(!m_Rsp->GetadoEOF())
{
m_hListCtrl->InsertItem(0, "") ;
v = m_Rsp->GetCollect("EmployeeID") ;
m_hListCtrl->SetItemText(0, 0, _bstr_t(v)) ;
v = m_Rsp->GetCollect("Name") ;
m_hListCtrl->SetItemText(0, 1, _bstr_t(v)) ;
v = m_Rsp->GetCollect("Sex") ;
m_hListCtrl->SetItemText(0, 2, _bstr_t(v)) ;
v = m_Rsp->GetCollect("Age") ;
m_hListCtrl->SetItemText(0, 3, _bstr_t(v)) ;
v = m_Rsp->GetCollect("Knowledge") ;
m_hListCtrl->SetItemText(0, 4, _bstr_t(v)) ;
v = m_Rsp->GetCollect("Nationality") ;
m_hListCtrl->SetItemText(0, 5, _bstr_t(v)) ;
v = m_Rsp->GetCollect("Academy") ;
m_hListCtrl->SetItemText(0, 6, _bstr_t(v)) ;
v = m_Rsp->GetCollect("Phone") ;
m_hListCtrl->SetItemText(0, 7, _bstr_t(v)) ;
v = m_Rsp->GetCollect("Address") ;
m_hListCtrl->SetItemText(0, 8, _bstr_t(v)) ;
v = m_Rsp->GetCollect("department") ;
m_hListCtrl->SetItemText(0, 9, _bstr_t(v)) ;
m_Rsp->MoveNext() ;
}
}
catch(_com_error & e)
{
char m_szTmp[1024] ;
sprintf(m_szTmp, "执行==>%s<==, 数据库操作失败,错误原因:%s\n",m_szSql, LPCTSTR(e.Description()));
}
}
void CDatabase::UpdateEmployeeData(char *EmployeeID, char *Name, char *Sex, char *Age, char *Knowledge, char *Nationality, char *Academy, char *Phone, char *Address, char *department)
{
char m_szSql[512] ;
_variant_t v(0L) ;
sprintf(m_szSql, "select * from tb_Employee where EmployeeID = '%s'", EmployeeID) ;
_RecordsetPtr m_Rsp ;
try{
m_Rsp = m_Connection->Execute(_bstr_t(m_szSql), &v, adCmdText) ;
if(!m_Rsp->GetadoEOF())
{//存在数据,更新
sprintf(m_szSql, "update tb_Employee set Name = '%s', \
Sex = '%s', Age = %s, Knowledge = '%s', Nationality = '%s', \
Academy = '%s', Phone = '%s', Address = '%s', department = '%s' \
where EmployeeID = '%s'",
Name,Sex,Age,Knowledge,Nationality,Academy, Phone, Address, department,EmployeeID) ;
m_Connection->Execute(_bstr_t(m_szSql), &v, adCmdText) ;
}
else
{//不存在数据,增加
sprintf(m_szSql, "insert into tb_Employee (Name,Sex,Age,Knowledge,Nationality,Academy, Phone, Address, department,EmployeeID) \
values ('%s', '%s', %s, '%s', '%s', '%s', '%s','%s','%s','%s')" ,
Name,Sex,Age,Knowledge,Nationality,Academy, Phone, Address, department,EmployeeID) ;
m_Connection->Execute(_bstr_t(m_szSql), &v, adCmdText) ;
}
}
catch(_com_error & e)
{
char m_szTmp[1024] ;
sprintf(m_szTmp, "执行==>%s<==, 数据库操作失败,错误原因:%s\n",m_szSql, LPCTSTR(e.Description()));
}
}
void CDatabase::EditEmployeeToCtrl(char *m_szEmployeeID,CEdit *m_hEditSex,CEdit *m_hEditPhone,CEdit *m_hEditNationality,CEdit *m_hEditName,CEdit *m_hEditKnowledge,CEdit *m_hEditEmployeeID,CComboBox *m_hCmbDepartment,CEdit *m_hEditAge,CEdit *m_hEditAddress,CEdit *m_hEditAcademy)
{
_variant_t v(0L) ;
_RecordsetPtr m_Rsp, m_Rsp1 ;
char m_szSql[512] ;
sprintf(m_szSql, "select * from tb_Employee where EmployeeID = '%s'", m_szEmployeeID) ;
try{
m_Rsp = m_Connection->Execute(_bstr_t(m_szSql), &v, adCmdText) ;
while(!m_Rsp->GetadoEOF())
{
v = m_Rsp->GetCollect("EmployeeID") ;
m_hEditEmployeeID->SetWindowText(_bstr_t(v)) ;
v = m_Rsp->GetCollect("Name") ;
m_hEditName->SetWindowText(_bstr_t(v)) ;
v = m_Rsp->GetCollect("Sex") ;
m_hEditSex->SetWindowText(_bstr_t(v)) ;
v = m_Rsp->GetCollect("Age") ;
m_hEditAge->SetWindowText(_bstr_t(v)) ;
v = m_Rsp->GetCollect("Knowledge") ;
m_hEditKnowledge->SetWindowText(_bstr_t(v)) ;
v = m_Rsp->GetCollect("Nationality") ;
m_hEditNationality->SetWindowText(_bstr_t(v)) ;
v = m_Rsp->GetCollect("Academy") ;
m_hEditAcademy->SetWindowText(_bstr_t(v)) ;
v = m_Rsp->GetCollect("Phone") ;
m_hEditPhone->SetWindowText(_bstr_t(v)) ;
v = m_Rsp->GetCollect("Address") ;
m_hEditAddress->SetWindowText(_bstr_t(v)) ;
v = m_Rsp->GetCollect("department") ;
m_hCmbDepartment->SetWindowText(_bstr_t(v)) ;
m_Rsp->MoveNext() ;
}
}
catch(_com_error & e)
{
char m_szTmp[1024] ;
sprintf(m_szTmp, "执行==>%s<==, 数据库操作失败,错误原因:%s\n",m_szSql, LPCTSTR(e.Description()));
}
}
void CDatabase::InitEmployeeData(CComboBox *m_hCmbEmployee)
{
_variant_t v(0L) ;
_RecordsetPtr m_Rsp ;
char m_szSql[512] ;
sprintf(m_szSql, "select * from tb_department") ;
try{
m_Rsp = m_Connection->Execute(_bstr_t(m_szSql), &v, adCmdText) ;
while(!m_Rsp->GetadoEOF())
{
v = m_Rsp->GetCollect("departmentname") ;
m_hCmbEmployee->AddString(_bstr_t(v)) ;
m_Rsp->MoveNext() ;
}
}
catch(_com_error & e)
{
char m_szTmp[1024] ;
sprintf(m_szTmp, "执行==>%s<==, 数据库操作失败,错误原因:%s\n",m_szSql, LPCTSTR(e.Description()));
}
}
void CDatabase::ListSysFunctionInfoToCtrl(CListCtrl *m_hListCtrl)
{
m_hListCtrl->DeleteAllItems() ;
_variant_t v(0L) ;
_RecordsetPtr m_Rsp ;
char m_szSql[512] ;
sprintf(m_szSql, "select * from tb_SysFunctionInfo") ;
try{
m_Rsp = m_Connection->Execute(_bstr_t(m_szSql), &v, adCmdText) ;
while(!m_Rsp->GetadoEOF())
{
m_hListCtrl->InsertItem(0, "") ;
v = m_Rsp->GetCollect("FunName") ;
m_hListCtrl->SetItemText(0, 0, _bstr_t(v)) ;
m_Rsp->MoveNext() ;
}
}
catch(_com_error & e)
{
char m_szTmp[1024] ;
sprintf(m_szTmp, "执行==>%s<==, 数据库操作失败,错误原因:%s\n",m_szSql, LPCTSTR(e.Description()));
}
}
void CDatabase::UpdateSysFunctionInfoData(char *m_szFuncInfo)
{
char m_szSql[512] ;
_variant_t v(0L) ;
try{
sprintf(m_szSql, "insert into tb_SysFunctionInfo (FunName) values ('%s')", m_szFuncInfo) ;
m_Connection->Execute(_bstr_t(m_szSql), &v, adCmdText) ;
}
catch(_com_error & e)
{
char m_szTmp[1024] ;
sprintf(m_szTmp, "执行==>%s<==, 数据库操作失败,错误原因:%s\n",m_szSql, LPCTSTR(e.Description()));
}
}
void CDatabase::ListRoleInfoToCtrl(CListCtrl *m_hListCtrl)
{
m_hListCtrl->DeleteAllItems() ;
_variant_t v(0L) ;
_RecordsetPtr m_Rsp ;
char m_szSql[512] ;
sprintf(m_szSql, "select * from tb_roleinfo") ;
try{
m_Rsp = m_Connection->Execute(_bstr_t(m_szSql), &v, adCmdText) ;
while(!m_Rsp->GetadoEOF())
{
m_hListCtrl->InsertItem(0, "") ;
v = m_Rsp->GetCollect("rolename") ;
m_hListCtrl->SetItemText(0, 0, _bstr_t(v)) ;
m_Rsp->MoveNext() ;
}
}
catch(_com_error & e)
{
char m_szTmp[1024] ;
sprintf(m_szTmp, "执行==>%s<==, 数据库操作失败,错误原因:%s\n",m_szSql, LPCTSTR(e.Description()));
}
}
void CDatabase::UpdateRoleinfoData(char *m_szName)
{
char m_szSql[512] ;
_variant_t v(0L) ;
try{
sprintf(m_szSql, "insert into tb_roleinfo (rolename) values ('%s')", m_szName) ;
m_Connection->Execute(_bstr_t(m_szSql), &v, adCmdText) ;
}
catch(_com_error & e)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -