日期:2014-05-16  浏览次数:20496 次

VC下ADO数据库操作的封装类
/******************************************************************
模块名称:数据库操作类;
实现功能:提供接口,实现数据的索引,和操作。
研究人员:长寿梦;
最后更新:2010-05-12

预先操作:
【1】在stdafx.h中添加
    #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
【2】在主进程的InitInstance()中添加
         if(!AfxOleInit())
        {
         AfxMessageBox("OLE初始化错误");
         return FALSE;
         }

【3】在.cpp文件中要包含"CPFile.h"
*********************************************************************/

/*****************************************************************
CPFile.h
******************************************************************/
class CPData 
{
public:
   
    //默认初始化构造函数
    CPData();
   
    //传入连接的构造函数
    CPData(_ConnectionPtr pConnection);
   
    //析构函数
    virtual ~CPData();
public:
   
    //连接数据库
    BOOL Connect(CString strUser,CString strPassword,CString strFileName="ConnectionParam.udl",int nOptions=-1,CString strConStr="Provider=sqloledb.1;Data Source=(local);Database=VLan");
   
    //关闭数据库的连接
    void DisConnect();
   
    //数据库查询语句,用来对数据库的各种字段进行查询
    //如果成功返回TRUE,否则返回FALSE.查询的结果存储在类的共有成员变量m_pRecordset中
    //查询结果的行数和列数分别保存在共有成员变量m_nResultRow和m_nResultCol中
    BOOL Select(CString strSql);
   
    //查询语句,负责对仅仅查询一个字段的情况进行处理
    //结果存放在CStringArray类型的变量pResult中
    BOOL Select(CString strSql,CStringArray& Result);
   
    //对多个字段进行查询
    BOOL SelectMulitCol(CString strSql,CStringArray& Result);
   
    //打开表
    BOOL OpenTable(CString strTable);
   
    //打开表
    BOOL OpenTable(CString strTable,CStringArray& Result);
   
    //进行其它的更新操作
    BOOL Execute(CString strSql);
public:
    BOOL ExecuteTrans(CStringArray& aSql);   
   
    //关闭结果集合
    void CloseRecordset();
   
    //得到操作结果的列数
    long GetResultCol();
   
    //得到操作结果的条数
    long GetResultRow();
   
    //得到操作结果
    _RecordsetPtr GetResult();
private:
   
    //数据库操作返回的结果条数
    long m_nResultRow;
   
    //返回的_RecordsetPtr中列数
    long m_nResultCol;
   
    //连接指针
    _ConnectionPtr m_pConnection;
   
    //命令执行指针
    _CommandPtr m_pCommand;
   
    //结果集指针
    _RecordsetPtr m_pRecordset;
};

/**************************************************************
CPFile.cpp
**************************************************************/

///////////////