Rich Explorer V3.1 简介 Build 0605

作者:左轻侯
我的信箱:qinghou@china.com
个人主页:“无双谱”http://onekey.yeah.net
大富翁地址:http://www.delphibbs.com

1、简介
2、版权
3、运行
4、编译
5、XML功能
6、V3.1新增功能

1、简介

Rich Explorer是一个用于阅读大富翁论坛离线数据库的软件。

基于ADO接口,理论上支持任何提供ADO驱动的数据库。
支持多关键字(以空格键分开)查询;
支持自定义SQL;
不再使用临时文件,而是直接将html字符串读入webbrower中;
支持HTML页面的保存和打印(有BUG,尚未修正);
支持基于XML的异构数据库同步;
支持数据源列表功能。

2、版权

遵循GPL协议,免费,源代码公开,你可以修改代码或将它添加到自己的程序中去。
但修改后的程序源代码必须公开(详见GPL)。
如果你改进了程序,请给作者发一份代码。
作者保留版权。

3、运行

需要Microsoft的数据库驱动包(MDAC)。可以到MS的站点或作者主页下载。

需要安装Microsoft的MSXML 3.0,用于解析XML。该软件会在您访问大富翁站点
的时候自动安装。也可以访问MS的站点或大富翁,手动下载安装。

程序从exe文件所在目录中读取cfg.ini文件,并将其内容
作为adoconnection 的ConnectionString。
可以使用菜单中的“工具-设置”来配置数据源。
如果没有找到cfg.ini文件,那么会在所在目录下寻找delphibbs.mdb文件
并打开。如果delphibbs.mdb文件也找不到,则报告初始化数据库错误。

理论上可以支持任何ADO支持的数据库。
已经在access97/2000、Interbase6(通过ODBC)、 SQL Server 2000下测试通过。
注意:在Interbase中,rooms表中的字段名不能为Group,因此必须手动更改
源码中的有关代码才能通过。

[注意]必须将letters表中的id,parent,Roomid,Datetime
字段设置索引,否则可能导致速度缓慢、记录重复、死机等后果。

[注意]由于大富翁离线数据库的结构发生了变动,必须手工改动数据库结构
才能让RE3.1支持。可以到我的主页下载一个离数据库范例(940K)。

可以通过改动style.css文件来定制显示的字体。

4、编译

没有使用任何第三方控件,可以在标准的delphi环境下进行编译。
必须先导入MSXML的ActiveX对象。
作者在Delphi 5 + MSXML 3.0 + windows 2000下编译通过。

5、XML功能

Rich Explorer从V3.0之后支持基于XML的动态更新功能。

Rich Explorer的更新功能以天为基本单位来进行。
例如2001-5-18这一天,指的是2001-5-18 00:00:00到2001-5-18 23:59:59
这一段时间范围。用户指定的各种时间范围,都会被自动分解成若干天的任务,
然后在一个循环中执行。这种设计的原因是大富翁论坛限制每次最多返回的
记录数不能超过5000。

Rich Explorer具有自动定位时间点的功能。在更新某一天的记录时,程序会
自动查找本地数据库中当天的最后一个贴子,并以它的时间为当天的时间起始点。
举例来说,当用户更新2001-5-18的贴子的过程中,因故中止。下次继续更新
2001-5-18的贴子时,程序会先在本地数据库中查找属于2001-5-18的最后一张
贴子。如果该贴子的时间是2001-5-18 10:23:15,那么程序将自动更新从
2001-5-18 10:23:15到2001-5-18 23:59:59的所有记录。
这种设计的好处是实现了类似于断点续传的功能,用户可以随时中止下载并
继续更新过程。

不要忘记在本地数据库中为letters表的datetime字段设置索引,否则定位时间点
的操作会变得很慢。

6、V3.1新增功能

支持二级分类。
彻底告别所有的ADO控件,使用原生ADO对象完成所有的数据库操作。
使用特殊的算法实现了本地缓存,彻底解决了数据集的ForwardOnly 问题,
同时仍然支持RecordCount。
支持数据源列表,可以方便地在各个数据源之间切换。

RE 3.1的速度有了极大的提高。
测试:mdb文件包含离线包1~7,大小158M,letters数据量37万条。
有关索引均已设置。
初始化数据库(打开第一个分类时)需要30秒左右的时间,此后打开
任何一个分类小于2秒,按标题查找小于5秒。

本程序在不断升级中,欢迎来信交流。

2001.6.5 湖南娄底