|
用Delphi的思想初步构建C++的ADO对象 其实名字起的太大了,哈哈,大家有没有在写数据库的时候老是需要try,catch,觉得很麻烦呢?我可受不了啊。但是没怎么写下去,一是对VC的ADO不了解,二是没时间。我把写的一些代码贴上来,有兴趣的人自己看下去。我懒得多解释了。贴上来等以后自己也可以看看。 看我的几个类吧。 #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的拥有者的get、set函数来达到目的 ValueType operator =(const ValueType& value) { assert(m_cObject != NULL); assert(Set != NULL); (m_cObject->*Set)(value); return value; } [1] [2] [3] [4] [5] 下一页 |