📄 conndb.cpp
字号:
#include "Stdafx.h"
#include "connDB.h"
/////////////////////////////////////////////////////////////////////////////
//Connection类的实现
//
//类CConn构造函数
CConn::CConn()
{
//初始化COM库环境
::CoInitialize(NULL);
//初始化Connection指针
m_Cn.CreateInstance(__uuidof(Connection));
}
//判断连接是否关闭
bool CConn::IsCnClose()
{
if (m_Cn->State == adStateOpen)
{
return false;
}
else
{
return true;
}
}
//连接数据库
bool CConn::Open(_bstr_t& cnStr)
{
if(!IsCnClose())
{
m_Cn->Close();
}
try
{
m_Cn->Open(cnStr,"","", adModeUnknown);
}
catch(_com_error err)//捕捉异常
{
CString errMsg;
//errMsg.Format("连接数据库失败!\n\n错误信息:%s", err.ErrorMessage());
//MessageBox(NULL, errMsg, "连接失败", MB_OK | MB_ICONWARNING);
return false;
}
return true;
}
//判断是否存在的记录
int CConn::IsExistRs(_bstr_t& strSql)
{
_RecordsetPtr Rs;
try
{
Rs = m_Cn->Execute(strSql, NULL, adCmdText);
}
catch(...)//捕捉异常
{
return -1;
}
if(Rs->adoEOF)
{
return 0;
}
return 1;
}
//执行无返回操作
bool CConn::ExecuteSql(_bstr_t& strSql)
{
try
{
m_Cn->Execute(strSql, NULL, adCmdText);
}
catch(_com_error err)//捕捉异常
{
//CString errMsg;
//errMsg.Format("执行SQL操作失败!\n\n错误信息:%s", err.ErrorMessage());
//MessageBox(NULL, errMsg, "操作失败", MB_OK | MB_ICONWARNING);
return false;
}
return true;
}
//获取活动连接
_ConnectionPtr& CConn::GetActiveConn()
{
return m_Cn;
}
void CConn::Close()
{
m_Cn->Close();
//m_Cn.Release();
}
//关闭连接释放资源
CConn::~CConn()
{
if(!IsCnClose())
{
m_Cn->Close();
}
m_Cn.Release();
//释放COM 资源
CoUninitialize();
}
//
//END Connection
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
//Recordset类的实现
//
CRecs::CRecs()
{
//初始化Recordset指针
m_Rs.CreateInstance("ADODB.Recordset");
}
//关闭Recordset
void CRecs::CloseRs()
{
if(m_Rs->State == adStateOpen)
{
m_Rs->Close();
}
}
//执行返回记录集的SQL查询
bool CRecs::Open(_ConnectionPtr& Conn, _variant_t& strSql)
{
if(Conn->State != adStateOpen)
{
//MessageBox(NULL, "数据库连接还未打开!", "错误", MB_OK | MB_ICONWARNING);
return false;
}
CloseRs();
try
{
m_Rs->Open(strSql, (IDispatch*)Conn, adOpenDynamic, adLockOptimistic, adCmdText);
}
catch(_com_error err)
{
//CString errMsg;
//errMsg.Format("执行SQL查询失败!\n\n错误信息:%s", err.ErrorMessage());
//MessageBox(NULL, errMsg, "操作失败", MB_OK | MB_ICONWARNING);
return false;
}
return true;
}
//获取记录集
_RecordsetPtr CRecs::GetRs()
{
return m_Rs;
}
//关闭Recordset释放资源
CRecs::~CRecs()
{
CloseRs();
m_Rs.Release();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -