📄 adoconn.cpp
字号:
// ADOConn.cpp: implementation of the ADOConn class.
//
//////////////////////////////////////////////////////////////////////
/*******************************************
文件名:ADOConn.h
文件类型:implementation file
功能描述:数据库基本操作类,主要包括连接数据库、执行SQL语句和获得执行结果
创建人:张国
版本号:1.0
*******************************************/
#include "stdafx.h"
#include "SalaryManagement.h"
#include "ADOConn.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
/**************
构造函数:
主要是获取数据库文件的路径
**************/
ADOConn::ADOConn()
{
//获得当前应用程序路径,并得到当前路径下的数据库文件路径
// char m_directory[MAX_PATH];
int nValue=GetModuleFileName(NULL,m_directory,MAX_PATH);
if(nValue<=0)
return;
m_directory[strlen(m_directory)-3]='\0';
strcat(m_directory,"mdb");
}
ADOConn::~ADOConn()
{
}
/**************************
功能描述:连接数据库
**************************/
void ADOConn::OnInitADOConn()
{
::CoInitialize(NULL);
HRESULT hr;
try
{
hr=m_pConnection.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
//连接数据库
_bstr_t strConnect="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
strConnect+=(_bstr_t)m_directory;
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
}
/**********************************
功能描述:执行SQL语句并获得执行结果
**********************************/
_RecordsetPtr& ADOConn::GetRecordSet(const CString& bstrSQL)
{
try
{
if(m_pConnection==NULL)
OnInitADOConn();
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->CursorType = adOpenStatic;
m_pRecordset->CursorLocation = adUseClient;
// m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pRecordset->Open((_bstr_t)bstrSQL,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
return m_pRecordset;
}
/********************
功能描述:执行SQL语句
********************/
BOOL ADOConn::ExecuteSQL(const CString& bstrSQL)
{
_variant_t RecordsAffected;
try
{
if(m_pConnection==NULL)
OnInitADOConn();
m_pConnection->Execute((_bstr_t)bstrSQL,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
e.Description();
return false;
}
}
/*******************
功能描述:关闭数据库
*******************/
void ADOConn::ExitConnect()
{
if(m_pRecordset!=NULL)
m_pRecordset->Close();
m_pConnection->Close();
::CoUninitialize();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -