打印本文 打印本文 关闭窗口 关闭窗口
用Delphi的思想初步构建C++的ADO对象
作者:武汉SEO闵涛  文章来源:敏韬网  点击数3707  更新时间:2009/4/23 10:43:17  文章录入:mintao  责任编辑:mintao

Delphi的思想初步构建C++ADO对象

 

其实名字起的太大了,哈哈,大家有没有在写数据库的时候老是需要try,catch,觉得很麻烦呢?我可受不了啊。但是没怎么写下去,一是对VCADO不了解,二是没时间。我把写的一些代码贴上来,有兴趣的人自己看下去。我懒得多解释了。贴上来等以后自己也可以看看。

 

看我的几个类吧。

#define READ_ONLY 1

#define WRITE_ONLY 2

#define READ_WRITE 3

 

template<typename Container, typename ValueType, int nPropType>

class CProperty

{

public:

       CProperty()

       {

              m_cObject = NULL;

              Set = NULL;

              Get = NULL;

       }

      

       //设置属性所在的对象指针

       void setContainer(Container* cObject)

       {

              m_cObject = cObject;

       }

      

       //设置set指针,用来修改属性用

       void setter(void (Container::*pSet)(ValueType value))

       {

              if((nPropType == WRITE_ONLY) || (nPropType == READ_WRITE))

                     Set = pSet;

              else

                     Set = NULL;

       }

      

       //设置get指针,用来读取属性用

       void getter(ValueType (Container::*pGet)())

       {

              if((nPropType == READ_ONLY) || (nPropType == READ_WRITE))

                     Get = pGet;

              else

                     Get = NULL;

       }

      

       //重载=操作符,用于实现这样的操作 CAdoConnection.Connected = TRUE;

       //注意CAdoConnection.Connected其实是一个CProperty的对象

       //属性的实现关键在于重载=操作符和隐式转换操作符

       //重载后调用CProperty的拥有者的getset函数来达到目的

       ValueType operator =(const ValueType& value)

       {

              assert(m_cObject != NULL);

              assert(Set != NULL);

              (m_cObject->*Set)(value);   

              return value;

       }

[1] [2] [3] [4] [5]  下一页

打印本文 打印本文 关闭窗口 关闭窗口