当前位置:C++技术网 > 资讯 > ADO数据库操作封装参考代码:3 AdoCommand头文件

ADO数据库操作封装参考代码:3 AdoCommand头文件

更新时间:2015-06-26 20:17:55浏览次数:1+次

/*########################################################################
【文件名】: AdoConnection.h
【名  称】: ADO 封装类.
【版  本】: 0.20
【作  者】: 成真
【E-mail】: anyou@sina.com
  ########################################################################*/
#if !defined(_ANYOU_COOL_ADOCOMMAND_H)
#define _ANYOU_COOL_ADOCOMMAND_H
#include "AdoConnection.h"

/*########################################################################
------------------------------------------------
  CAdoParameter class
------------------------------------------------
  ########################################################################*/
class CAdoParameter
{
    // 构建/折构 -------------------------------------------
    public:
    CAdoParameter();
    CAdoParameter(DataTypeEnum DataType, long lSize, ParameterDirectionEnum Direction, CString strName);
    virtual ~CAdoParameter();
    // 属性 ------------------------------------------------
    public:
    _ParameterPtr GetParameter() {return m_pParameter;}

    // 参数精度 ---------------------------
    BOOL SetPrecision(char nPrecision);

    // 参数小数位数 -----------------------
    BOOL SetNumericScale(int nScale);

    // 参数类型 ---------------------------
    ParameterDirectionEnum GetDirection();
    BOOL SetDirection(ParameterDirectionEnum Direction);

    // 参数名称 ---------------------------
    CString GetName();
    BOOL SetName(CString strName);

    // 参数长度 ---------------------------
    int GetSize();
    BOOL SetSize(int size);

    // 参数据类型 -------------------------
    DataTypeEnum GetType();
    BOOL SetType(DataTypeEnum DataType);

    // 方法 ------------------------------------------------
    public: 
    BOOL GetValue(COleDateTime &value);
    BOOL GetValue(CString &value);
    BOOL GetValue(double &value);
    BOOL GetValue(long &value);
    BOOL GetValue(int &value);
    BOOL GetValue(short &value);
    BOOL GetValue(BYTE &value);
    BOOL GetValue(bool &value);

    BOOL SetValue(const float &value);
    BOOL SetValue(const short &value);
    BOOL SetValue(const BYTE &value);
    BOOL SetValue(const COleDateTime &value);
    BOOL SetValue(const CString &value);
    BOOL SetValue(const double &value);
    BOOL SetValue(const long &value);
    BOOL SetValue(const int &value);
    BOOL SetValue(const bool &value);
    BOOL SetValue(const _variant_t &value);

    //其他方法 ------------------------------
    public:
    _ParameterPtr& operator =(_ParameterPtr& pParameter);

    // 数据 ------------------------------------------------
    protected:
    _ParameterPtr m_pParameter;
    CString m_strName;
    DataTypeEnum m_nType;
    CString m_strLogFile;
    CString m_strErrMsg;
};


/*########################################################################
------------------------------------------------
  CAdoCommand class
------------------------------------------------
  ########################################################################*/

class CAdoCommand
{
    // 构建/折构 -------------------------------------------
    public:
    CAdoCommand();
    CAdoCommand(CAdoConnection* pAdoConnection, CString strCommandText = _T(""), CommandTypeEnum CommandType = adCmdStoredProc);
    virtual ~CAdoCommand();

    // 属性 ------------------------------------------------
    public:
    _variant_t GetValue(LPCTSTR lpstrName);
    _variant_t GetValue(long index);

    _ParameterPtr GetParameter(long index);
    _ParameterPtr GetParamter(LPCTSTR lpstrName);

    BOOL Append(_ParameterPtr param);

    ParametersPtr GetParameters();

    BOOL SetCommandTimeOut(long lTime);

    long GetState();

    BOOL SetCommandType(CommandTypeEnum CommandType);
    BOOL SetCommandText(LPCTSTR lpstrCommand);

    CAdoParameter operator [](int index);
    CAdoParameter operator [](LPCTSTR lpszParamName);

    // 实现 ------------------------------------------------
    public:
    _ParameterPtr CreateParameter(LPCTSTR lpstrName, DataTypeEnum Type, 
     ParameterDirectionEnum Direction, 
     long Size, _variant_t Value);
    _RecordsetPtr CAdoCommand::Execute(long Options = adCmdStoredProc);
    BOOL Cancel();

    // 其他方法 --------------------------------------------
    public:
    _CommandPtr& GetCommand();
    BOOL SetConnection(CAdoConnection *pConnect);

    // 数据 ------------------------------------------------
    protected:
    void Release();
    _CommandPtr m_pCommand;
    CString m_strSQL;
    CString m_strLogFile;
    CString m_strErrMsg;
};

#endif // !defined(_ANYOU_COOL_ADOCOMMAND_H)

如发现Bug,请修正后反馈。