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