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

📄 databaseop.cpp

📁 私人信息管理。可完成资料收集、日程安排、日历闹钟等功能
💻 CPP
字号:
// DatabaseOP.cpp: implementation of the CDatabaseOP class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "PMSys.h"
#include "DatabaseOP.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CDatabaseOP::CDatabaseOP()
{
	::CoInitialize(NULL); //初始化OLE/COM库环境

	m_pConnection.CreateInstance(_uuidof(Connection)); //初始化Connection指针
	m_pRecordset.CreateInstance(_uuidof(Recordset));//初始化Recordset指针

}

CDatabaseOP::~CDatabaseOP()
{

}



BOOL CDatabaseOP::CheckUserFromDB(CString UserName, CString UserPwd)
{
	if(!ConnectDB())
		return false;

	try
	{
//DAO的方式连接数据库与查询
//		CDaoDatabase dao_db;
//		dao_db.Create();

//		dao_db.Open("F:\\PersonalManager.mdb");
//		CDaoRecordset rs;
//		rs.m_pDatabase = &dao_db;
//		
//		rs.Open(AFX_DAO_USE_DEFAULT_TYPE,"Select * from SysPara where SysParaName='"+ UserName +"'");
//		CString str;
//		str.Format("%d",rs.GetRecordCount());
//		AfxMessageBox(str);
//		//sys_db.ExecuteSQL("Select * from SysPara where SysParaName='"+ UserName +"'");

// 执行SQL语句得到一个记录集把其指针赋值给m_pRecordset
		CString strSql1="select * from SysPara where SysParaName='UserName'";
		BSTR bstrSQL1 = strSql1.AllocSysString(); 
		CString strSql2="select * from SysPara where SysParaName='UserPwd'";
		BSTR bstrSQL2 = strSql2.AllocSysString(); 
		m_pRecordset->Open(bstrSQL1,(IDispatch*)m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText); 
		//adOpenDynamic:动态 adLockOptimistic乐观封锁法 adCmdText:文本查询语句
		
		CString get_name="",get_pwd="";
		
 		if(!m_pRecordset->adoEOF)
		{
			_bstr_t TheValue1=m_pRecordset->Fields->GetItem("SysParaValue")->Value;
			get_name = TheValue1.copy();//得到字段的值
		}
		m_pRecordset->Close();
		m_pRecordset->Open(bstrSQL2,(IDispatch*)m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText); 
		if(!m_pRecordset->adoEOF)
		{
			_bstr_t TheValue2=m_pRecordset->Fields->GetItem("SysParaValue")->Value;
			get_pwd = TheValue2.copy();//得到字段的值
		}

		if(get_name == UserName && get_pwd == UserPwd)
			return true;
		else
			return false;
	}
	catch (CException * pe) {
		AfxMessageBox("Database RecordSet Error");

		return false;
		pe->Delete();
	}
	
	return true;
}

BOOL CDatabaseOP::ConnectDB()
{
	try
	{
//另外一种方式打开数据库
//		CLSID clsid;
//		HRESULT hr = ::CLSIDFromProgID(L"ADODB.Connection", &clsid);
//		if(FAILED(hr))
//		{
//			AfxMessageBox("Create ADODB.Connection Error!");
//			return FALSE;
//		}
//		::CoCreateInstance(clsid, NULL, CLSCTX_SERVER, IID_IDispatch, (void **)
//			&pDispatch);
//		if(FAILED(hr))
//		{...}

//连接数据库
		m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='PersonalManager.mdb';", "", "", adConnectUnspecified);

//DSN数据库连接
		//m_pConnection->Open("DSN=PersonalManager;uid=;pwd=;","","",0); 
	}
	catch (CException * pe) {
		AfxMessageBox("Database Connection Error!");
		return false;
		pe->Delete();
	}
	return true;
}

void CDatabaseOP::CloseDB()
{
	try
	{
		m_pConnection->Close();
	}
	catch (CException * pe) {
		pe->Delete();
	}
}

⌨️ 快捷键说明

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