//////////////////////////////////////////////////////////////////////////////
//类名:DataAccess
//功能:ADO处理数据库的基础类库
//作者:鲁勇志
//组织:网勤科技
//日期:2007.4.4
/////////////////////////////////////////////////////////////////////////////
#ifndef DATAACCESS_H
#define DATAACCESS_H
#import "C:Program FilesCommon FilesSystemadomsado15.dll" no_namespace rename("EOF","rsEOF")
#include

using namespace std;

class DataAccess
{
private:
    //定义数据库资源对象
    _ConnectionPtr        m_pConn;
    _RecordsetPtr        m_pRecrod;
    _bstr_t                m_conString;
public:
    DataAccess()
    {
        //初始化com环境
        CoInitialize(NULL);
        //初始化连接类
        this->m_pConn.CreateInstance(__uuidof(Connection));
        //初始化连接字符
        this->m_conString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb";
        //初始化记录集
        this->m_pRecrod.CreateInstance(__uuidof(Recordset));
    }
    ~DataAccess()
    {
        this->ReleaseData();
    }
    //打开数据库,成功返回TRUE,失败返回FALSE
    BOOL OpenConn()
    {
        try
        {
            this->m_pConn->Open(m_conString,"","",adConnectUnspecified);
            return TRUE;
        }
        catch(_com_error e)
        {
            throw e;
            return FALSE;
        }
    }
    //释放数据库资源
    void ReleaseData()
    {
        if(this->m_pRecrod!=NULL)
        {
            delete this->m_pRecrod;
        }
        if(this->m_pConn!=NULL)
        {
            delete this->m_pConn;
        }
    }
    //执行SQL查询语句,返回记录集,可执行存储过程,insert,update语句,有结果集返回结果集体,没结果集返回空,SQL语句错误抛出异常
    _RecordsetPtr Execute(_bstr_t sql)
    {
        this->m_pRecrod->Open(sql,this->m_pConn.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);
        return m_pRecrod;
    }
};
#endif 
最后修改:2015 年 11 月 06 日
如果觉得我的文章对你有用,请随意赞赏