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

📄 database.cpp

📁 连接SQL数据库的系统源码,对于初学者十分有参考价值哦
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// 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 + -