|
阅读:799回复:7
to songbai:VDB
你的VDB还是很实用的哦,我们下回要是整理数据库文档的Html版就可以用它了
给几点意见 1. use Multithreading 用户界面被block住了 受不了 2. 连接上数据库后,一次性把信息读入内存,不要每次点击每个表就再连接数据库再读一遍数据,连接数据库的开销是很大的,而且在关掉软件前,有人把数据库结构改了的可能性很小,如果怕被改未反应出 加个刷新按钮就行 |
|
|
|
1C#
发布于:2003-11-26 21:51
Re: to songbai:VDB
第一点我再好好看一看。
第二点,这可能是第一版的问题,我现在记不清楚了,不过新版已经改过了。 |
|
|
|
2C#
发布于:2003-11-28 07:50
Re: to songbai:VDB
铁板的修改就是牛~。
我现在不知道什么时候该把这些类写成继承,什么时候不需要。 需求:一个可以处理各种数据库的类。我记得 KMWANG 说他原来写过一个,能发来看看吗? 我还用为每一种数据派生出新的类吗? |
|
|
|
3C#
发布于:2003-11-28 17:34
Re: to songbai:VDB
未指定数据库名可以连上数据库吗?
如果不可以的话 那CDBServer的 m_DBList 就没有必要了 只需要 m_strDBName 而且还是外部传进来的 而且我觉得既然只是对数据库结构进行管理叫 CDBManager比较清晰 这样呢 class CDBManager{ public: CDBManager(); virtual ~CDBManager(); void Create(strServerName, strUserName, strPassword, strDBName); virtual void Connect()=0; protected: void Destroy(); CString m_strDBName; CString m_strServerName; CString m_strUserName; CString m_strPassword; }; [ 2003-11-28 18:20:37 dabou 修改 ] |
|
|
|
4C#
发布于:2003-11-29 20:25
Re: to songbai:VDB
第二版比第一版快多了,确实没有了第二个毛病,but not object-oriented enough,especially CLSDatabase
我上面的帖子说的是错的, CDBServer CDatabase CDBTable CDBField 是否要派生,得看如何结构是如何设计的了, 我还有个新想法,就是导出 XML 格式,那样对于库或是表的信息你可以根据不同的 XSL 生成不同要求的样式,然后定制几个的 XSL 模板,不但可以得到不同样式的网页 还可以得到不同的 SQL 语句. 然后我们就可以导出 得到 诸如 INSERT INTO tablename (fld1,fld2,fld3) values(,,) 等等可以加快我程序开发的 SQL 指令:) |
|
|
|
5C#
发布于:2003-11-29 22:42
Re: to songbai:VDB
相知关系就成了,多重继承要少用,数据库一直没多少机会用,也没写过哪个类,松松记错了:) |
|
|
6C#
发布于:2003-11-30 09:57
Re: to songbai:VDB
如果CDBServer提供一切数据库的操作,那它是个抽象的基类,且派生出CMsSQLServer CMySQLServer CODBCServer
CDatabase, CTable等需要派生吗, 如果CMsDatabase, CMySQLDatabase, CODBCDatabase都很不同的话就需要派生,但CDatabase, Ctable, CField等只是保存个信息,把操作提交给CDBServer做,所以不需要作为虚基类 而且 CDBServer CDatabase CTable CField 是个树状结构,所以 CDatabase 要保存一个指向父节点 CDBServer 的指针, CTable, CField 类推. CDatabase::operator() { _server->operator(this); } [ 2003-11-30 10:17:01 dabou 修改 ] |
|
|
|
7C#
发布于:2003-11-30 13:04
Re: to songbai:VDB
如果CDBServer提供一切数据库的操作,那它是个抽象的基类,且派生出CMsSQLServer CMySQLServer CODBCServer 这几种数据库的操作是完全相同的。 |
|
|