描述:
我刚刚参加工作,以前的vc基础也不是很好,刚进公司,老板就要我搞组件开发,给我郁闷死了。对于大家来说也许很简单,所以我需要大家的帮忙!
任务:数据库维护。三张表DictDatasource,DictTable,DictField,生成组件,客户端能够进行添加,删除,更新等操作。
详细描述:老板给了我一个设计文档,接口设计如下:
IGHDatasource,IGHDatasources,IGHTable,IGHTables,IGHField,IGHFields
IGHDatasource,IGHTable,IGHField接口中,很简单,就是对对应数据库中的字段添加属性,进行set,get设置。
关键是,IGHDatasources,IGHTables,IGHFields,这些接口里面要实现 Item,Count,refresh等方法。
在这里,应该是IGHDatasources就类似于包装了IGHDatasource,将IGHDatasource包含的属性,作为一个整体,来进行操作,应该要用到vector之类的东西吧。。
我一点都不懂,大家有什么好的建议么,和我说说,好么?
比如举个例子,这里的refresh方法该如何实现?听老板说,所有和数据库相关的操作,都在refresh里面实现。。我想,是不是先把所有中间操作的结果都放在vector里面,然后调用refresh的时候,再和数据库进行比较?
大家哪里有比较类似的例子,好让我模仿模仿,不胜感激!
分数大家要多少,我就给多少,拜托!
解决方案1:
就是个集合枚举对象模型,LeeZi(临渊羡鱼,不如退而结网)说的对,《ATL深入解析》必看,看不懂也要坚持看,书读百遍,其意自现。
解决方案2: IGHTable和IGHTables的这种包容关系,一般是先获得IGHTables接口然后使用IGHTables的方法获得IGHTable
大致思路可以是:
1.打开数据库连接
2.打开表
3。search想要的记录
4。建立vector<主字段类型>,map<主字段类型,*Row>
5。偏历记录将主字段的值放在vector<主字段类型>中,同时设置map[主字段类型] = *Row;
6.在GRID中显示记录,根据Row*指针完成更新
参考ADO吧
看看它的类型库
还好,火箭不能从电脑里编程编出来,否则,真不知道会出现什么情况,:-)
解决方案5: 用组件编程有什么好处?以后我也要学!!
建议你去买本《ATL深入解析》,参考里面的集合对象的实现。而且这本书绝对值得收藏,你不会后悔的。
你杀了我吧,你比我还惨,我搞了几个月了,对你说的这些都非常困难,何况你刚接触COM