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

📄 adoconn.cpp

📁 这是采用mfc编写的工资管理系统
💻 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 + -