设为首页 加入收藏

TOP

基于ADO的VC++数据库操作类实现
2014-11-23 20:26:21 来源: 作者: 【 】 浏览:59
Tags:基于 ADO 数据库 操作 实现
作者:l4nk0r
时间:2010-1-22
功能:基于ADO 数据库类实现

1.首先在stdafx.h文件添加如下代码:

// 导入ADO的动态链接库
#import "c:Program FilesCommon FilesSystemadomsado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")

2.实现ADOConn.h类定义

class ADOConn
{
public:
ADOConn();
virtual ~ADOConn();
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
_RecordsetPtr m_pSubRecord;
_variant_t b;
_variant_t c;
public:
// 初始化―连接数据库
void OnInitADOConn();
// 执行查询
_RecordsetPtr& GetRecordSet(_bstr_t bstrSQL);
// 执行SQL语句,Insert Update _variant_t
BOOL ExecuteSQL(_bstr_t bstrSQL);
void ExitConnect();
};

3.类的实现文件ADOConn.cpp

#include "stdafx.h"
#include "ADOConn.h"

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

ADOConn::ADOConn()
{

}

ADOConn::~ADOConn()
{

}
// 初始化数据库连接
void ADOConn::OnInitADOConn()
{
::CoInitialize(NULL);
try
{
// 创建实例
m_pConnection.CreateInstance("ADODB.Connection");
// 这里我写的是针对Access数据库的连接字符串,请相应修改
_bstr_t strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=point.mdb;Mode=ReadWrite;Persist Security Info=False";
// 打开数据库
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
// 异常捕获
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
}

// 获取记录集
_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)
{
try
{
if(m_pConnection==NULL)
OnInitADOConn();
m_pRecordset.CreateInstance(__uuidof(Recordset));
// 执行sql语句得到记录集
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
return m_pRecordset;
}
// 执行任意SQL语句
BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
try
{
if(m_pConnection == NULL)
OnInitADOConn();
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
return false;
}
}
// 关闭数据库连接
void ADOConn::ExitConnect()
{
if (m_pRecordset != NULL)
m_pRecordset->Close();
m_pConnection->Close();
::CoUninitialize();
}
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Windows Gdi 的入门级教程文章 (V.. 下一篇用VC++开发读取网卡MAC地址的程序

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: