dabou
小有名气
小有名气
  • 铜币0枚
  • 威望0点
  • 贡献值0点
阅读:799回复:7

to songbai:VDB

楼主#
更多 发布于:2003-11-26 18:21
你的VDB还是很实用的哦,我们下回要是整理数据库文档的Html版就可以用它了
给几点意见
1. use Multithreading  用户界面被block住了 受不了
2. 连接上数据库后,一次性把信息读入内存,不要每次点击每个表就再连接数据库再读一遍数据,连接数据库的开销是很大的,而且在关掉软件前,有人把数据库结构改了的可能性很小,如果怕被改未反应出 加个刷新按钮就行
当个好的屠夫一直是我的梦想
松柏
论坛版主
论坛版主
  • 铜币371枚
  • 威望39点
  • 贡献值0点
  • 社区居民
1C#
发布于:2003-11-26 21:51
Re: to songbai:VDB
第一点我再好好看一看。

第二点,这可能是第一版的问题,我现在记不清楚了,不过新版已经改过了。
[color=#0000FF]馋嘴蜗牛[/color] 我的博客:[url]http://osnaile.osdn.cn/[/url]
松柏
论坛版主
论坛版主
  • 铜币371枚
  • 威望39点
  • 贡献值0点
  • 社区居民
2C#
发布于:2003-11-28 07:50
Re: to songbai:VDB
铁板的修改就是牛~。

我现在不知道什么时候该把这些类写成继承,什么时候不需要。

需求:一个可以处理各种数据库的类。我记得 KMWANG 说他原来写过一个,能发来看看吗?


我还用为每一种数据派生出新的类吗?
[color=#0000FF]馋嘴蜗牛[/color] 我的博客:[url]http://osnaile.osdn.cn/[/url]
dabou
小有名气
小有名气
  • 铜币0枚
  • 威望0点
  • 贡献值0点
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 修改 ]
当个好的屠夫一直是我的梦想
dabou
小有名气
小有名气
  • 铜币0枚
  • 威望0点
  • 贡献值0点
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 指令:)

当个好的屠夫一直是我的梦想
kmwang
小有名气
小有名气
  • 铜币0枚
  • 威望0点
  • 贡献值0点
5C#
发布于:2003-11-29 22:42
Re: to songbai:VDB
相知关系就成了,多重继承要少用,数据库一直没多少机会用,也没写过哪个类,松松记错了:)
dabou
小有名气
小有名气
  • 铜币0枚
  • 威望0点
  • 贡献值0点
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 修改 ]
当个好的屠夫一直是我的梦想
松柏
论坛版主
论坛版主
  • 铜币371枚
  • 威望39点
  • 贡献值0点
  • 社区居民
7C#
发布于:2003-11-30 13:04
Re: to songbai:VDB
如果CDBServer提供一切数据库的操作,那它是个抽象的基类,且派生出CMsSQLServer CMySQLServer CODBCServer
CDatabase, CTable等需要派生吗, 如果CMsDatabase, CMySQLDatabase, CODBCDatabase都很不同的话就需要派生..


这几种数据库的操作是完全相同的。
[color=#0000FF]馋嘴蜗牛[/color] 我的博客:[url]http://osnaile.osdn.cn/[/url]
游客

返回顶部